Używam Python 3.2 w Windows 7. Kiedy otwieram powłokę Pythona, skąd mogę wiedzieć, co to jest katalog bieżący i jak mogę go zmienić na inny katalog, w którym znajdują się moje moduły?Jak poznać/zmienić aktualny katalog w powłoce Pythona?
Odpowiedz
można użyć modułu os
.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Ale jeśli chodzi o znalezienie innych modułów: Można ustawić zmienną środowiskową o nazwie PYTHONPATH
pod Linux będzie jak
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Następnie wyszukuje tłumaczy również w tym miejscu przez import
modułów ed. Myślę, że nazwa byłaby taka sama w systemie Windows, ale nie wiem jak się zmienić.
edit
Pod Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(zaczerpnięte z http://docs.python.org/using/windows.html)
edit 2
... a nawet lepiej: użyj virtualenv
i virtualenv_wrapper
, to wszystko sprowadzi w tworzeniu środowiska programistycznego, w którym można dodawać ścieżki modułów według własnego uznania (add2virtualenv
) bez zanieczyszczania instalacji lub "normalnego" środowiska pracy.
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
Jeśli import os
można użyć os.getcwd
uzyskać bieżący katalog roboczy, a można użyć os.chdir
aby zmienić katalog
chcesz
import os
os.getcwd()
os.chdir('..')
os.chdir ("C: \ Users \ Ajeya \ Documents \ ') ^ Błąd syntax: EOL podczas skanowania literału ciągu znaków – AAI
@Wszystko, czego potrzebujesz podwoić ukośniki odwrotne, jeśli używasz ich w zwykłym (nie-surowym) łańcuchu Pythona. Python pozwala również używać zamiast tego ukośników. Tak więc albo "os.chdir (" C:/Users/Ajeya/Documents ")' lub 'os.chdir (" C: \\ Users \\ Ajeya \\ Documents ")' lub 'os.chdir (r "C: \ Users \ Ajeya \ Documents") ". –
Zmiana bieżący katalog nie jest sposobem radzenia sobie ze znalezieniem modułów w Pythonie.
Zobacz raczej dokumentację dla The Module Search Path, aby dowiedzieć się, w jaki sposób Python znajduje moduł do zaimportowania.
Oto odnośny nieco od Standard Modules odcinku:
The variable sys.path is a list of strings that determines the interpreter’s search path for modules. It is initialized to a default path taken from the environment variable PYTHONPATH, or from a built-in default if PYTHONPATH is not set. You can modify it using standard list operations:
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
W odpowiedzi na pierwotne pytanie o uzyskanie i ustawianie bieżący katalog:
>>> help(os.getcwd)
getcwd(...)
getcwd() -> path
Return a string representing the current working directory.
>>> help(os.chdir)
chdir(...)
chdir(path)
Change the current working directory to the specified path.
>>> import os
>>> os.system('cd c:\mydir')
W rzeczywistości os.system()
może wykonać dowolny polecenie, że okno wiersza polecenia systemu Windows może wykonać, a nie tylko zmienić katalog.
Plik "
Najprostszym sposobem na zmianę bieżącego katalogu roboczego w Pythonie jest użycie pakietu "os". Poniżej znajduje się przykład komputera Windows:
#import the os package
import os
# Confirm the current working directory
os.getcwd()
# use '\\' while chaning the directory
os.chdir("C:\\user\\foldername")
@Ignacio, Co masz na myśli? – astay13
Zostało to już omówione [tutaj] [1]: http://stackoverflow.com/questions/431684/how-do-i-cd-in-python – mudda
@ astay13 - Myślę, że Ignacio oznacza, że nie są przeznaczone do zmiany katalogu na ścieżkę modułu. Prawdopodobnie powinieneś sprawdzić zmienną środowiskową PYTHONPATH. – simon