Korzystam z Python 3.2 w systemie Windows 7. Kiedy otwieram powłokę Python, skąd mam wiedzieć, jaki jest bieżący katalog i jak mogę go zmienić na inny katalog, w którym znajdują się moje moduły?
Korzystam z Python 3.2 w systemie Windows 7. Kiedy otwieram powłokę Python, skąd mam wiedzieć, jaki jest bieżący katalog i jak mogę go zmienić na inny katalog, w którym znajdują się moje moduły?
Odpowiedzi:
Możesz użyć os
modułu.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Ale jeśli chodzi o znalezienie innych modułów: Możesz ustawić zmienną środowiskową o nazwie PYTHONPATH
, pod Linuksem byłoby jak
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Następnie tłumacz szuka również w tym miejscu import
modułów ed. Myślę, że nazwa będzie taka sama w systemie Windows, ale nie wiem, jak to zmienić.
edytować
W systemie Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(pochodzi z http://docs.python.org/using/windows.html )
edycja 2
... a nawet lepiej: użyj virtualenv
i virtualenv_wrapper
, pozwoli ci to stworzyć środowisko programistyczne, w którym możesz dodawać ścieżki modułów według add2virtualenv
własnego uznania ( ) bez zanieczyszczania instalacji lub „normalnego” środowiska pracy.
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
PYTHONPATH
, ale pamiętaj, że PO określa system Windows ...
sys.path
skryptu.
PYTHONPATH
globalnie, jeśli masz więcej niż jednego zainstalowanego Pythona (lub masz zainstalowane programy, które zawierają pakiet Pythona z nimi - innymi słowy nigdy się nie dowiesz): może to zepsuć instalację w tajemniczy sposób
chcesz
import os
os.getcwd()
os.chdir('..')
os.chdir('C:/Users/Ajeya/Documents')
lub os.chdir('C:\\Users\\Ajeya\\Documents')
lub os.chdir(r'C:\Users\Ajeya\Documents')
.
os.getcwd()
tylko w celu debugowania, abyśmy mogli zobaczyć, jaki jest katalog roboczy, zanim go zmienimy. Kod do zmiany cwd
jest po prostuos.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
W rzeczywistości os.system()
może wykonać dowolne polecenie, które może wykonać wiersz polecenia systemu Windows, a nie tylko zmienić katalog.
Zmiana bieżącego katalogu nie jest sposobem na znalezienie modułów w Pythonie.
Zamiast tego zobacz dokumentację ścieżki wyszukiwania modułów, aby dowiedzieć się, w jaki sposób Python znajduje moduł do zaimportowania.
Oto odpowiedni fragment z sekcji Moduły standardowe :
Zmienna sys.path jest listą ciągów, które określają ścieżkę wyszukiwania modułów interpretera. Jest inicjowany do domyślnej ścieżki pobranej ze zmiennej środowiskowej PYTHONPATH lub z wbudowanej wartości domyślnej, jeśli PYTHONPATH nie jest ustawiony. Możesz go zmodyfikować za pomocą standardowych operacji na liście:
>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
W odpowiedzi na twoje oryginalne pytanie dotyczące pobierania i ustawiania bieżącego katalogu:
>>> 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 sys sys.path.append('/home/g/PycharmProjects/your_project/')
Najłatwiejszym sposobem zmiany bieżącego katalogu roboczego w pythonie jest użycie pakietu „os”. Poniżej znajduje się przykład komputera z systemem Windows:
# Import the os package
import os
# Confirm the current working directory
os.getcwd()
# Use '\\' while changing the directory
os.chdir("C:\\user\\foldername")