Jak dowiedzieć się, które katalogi są wymienione w PYTHONPATH
zmiennej mojego systemu , w skrypcie Python (lub w interaktywnej powłoce)?
python
python-module
pythonpath
Paul D. Waite
źródło
źródło
PYTHONPATH
. Użyjsys.path
do tego.sys.path
to „Lista ciągów znaków określających ścieżkę wyszukiwania modułów” - docs.python.org/2/library/sys.html#sys.path . PYTHONPATH to zmienna środowiskowa, która wpływa na tę listę. Z jakiejkolwiek rozsądnej definicjisys.path
jest twoja „ścieżka pythona”.python -m site
.Odpowiedzi:
sys.path
mogą zawierać elementy, które nie są specjalnie wPYTHONPATH
zmiennej środowiskowej. Aby bezpośrednio wysłać zapytanie do zmiennej, użyj:źródło
sys.path
.Prawdopodobnie chciałbyś również:
Lub jako jedna linijka z terminala:
Uwaga : Jeśli masz wiele wersji Pythona, powinieneś użyć odpowiedniej komendy
python2
lubpython3
.źródło
python -c "import sys; print('\n'.join(sys.path))"
Nie można edytować drugiej odpowiedzi. Ma niewielki błąd, ponieważ jest to tylko system Windows. Bardziej ogólnym rozwiązaniem jest użycie os.sep jak poniżej:
sys.path może zawierać elementy, które nie są specjalnie w zmiennej środowiskowej PYTHONPATH. Aby bezpośrednio wysłać zapytanie do zmiennej, użyj:
źródło
os.sep
zwraca separator katalogów dla systemu operacyjnego, np/
. Separator użyty w ścieżce Pythona jest inny i jest zwracany przez,os.pathsep
jak pokazano w zaakceptowanej odpowiedzi.PYTHONPATH to zmienna środowiskowa, której wartością jest lista katalogów. Raz ustawiony, jest używany przez Python do wyszukiwania importowanych modułów, wraz z innymi standardowymi. oraz katalogi bibliotek innych firm wymienione w „sys.path” Pythona.
Jak każda inna zmienna środowiskowa, możesz ją wyeksportować w powłoce lub w ~ / .bashrc, patrz tutaj . Możesz zapytać os.environ ['PYTHONPATH'] o jego wartość w Pythonie, jak pokazano poniżej:
JEŻELI zdefiniowano w powłoce jako
TO wynik =>
Wynik ELSE =>
Aby ustawić PYTHONPATH na wiele ścieżek, zobacz tutaj .
Zauważ, że ścieżkę wyszukiwania można dodać lub usunąć za pomocą sys.path.insert (), del lub remove () w czasie wykonywania, ale NIE poprzez os.environ []. Przykład:
Podsumowując, PYTHONPATH to jeden ze sposobów określania ścieżek wyszukiwania w Pythonie dla importowanych modułów w sys.path. Możesz również zastosować operacje na liście bezpośrednio do sys.path bez pomocy PYTHONPATH.
źródło
Python mówi mi, gdzie mieszka, gdy wyświetla komunikat o błędzie :)
źródło
Użyj tego:
Lub jedna linia z cmd:
źródło