Trwałe dodawanie ścieżki do pliku do sys.path w Pythonie


103

Miałem plik o nazwie example_file.py, która chciałem użyć z różnych innych plików, więc postanowiłem dodać example_file.pydo sys.pathi importować ten plik w innym pliku, aby użyć pliku. Aby to zrobić, uruchomiłem w IPythonie następujące polecenie.

import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)

Widziałem ścieżkę, którą właśnie dodałem, i kiedy próbowałem zaimportować ten plik z innej ścieżki katalogu, na przykład:

import example_file

działało dobrze, ale kiedy wyszedłem z IPythona, wszedłem do niego ponownie i sprawdziłem sys.path, zobaczyłem, że dodana przeze mnie ścieżka nie jest obecna, więc jak mogę na stałe dodać ścieżkę do sys.path w Pythonie?


3
Uczyń swój kod odpowiednim pakietem, uczyń go łatwym do zainstalowania i ciesz się do końca życia (zamiast majsterkować). Poza tym: każda dokumentacja mówi WYRAŹNIE, że sys.path.append()akceptuje katalog zawierający plik ORAZ NIE JEDNĄ ŚCIEŻKĘ DO PLIKU.
— Andreas Jung

możliwy duplikat trwałego
— dodania


Nie myl ścieżki systemowej z PYTHONPATH.
— Burhan Khalid

Odpowiedzi:


99

Sposobów jest kilka. Jednym z najprostszych jest utworzenie my-paths.pthpliku (jak opisano tutaj ). To jest tylko plik z rozszerzeniem .pth, które umieścisz w site-packageskatalogu systemowym . W każdym wierszu pliku umieszczasz jedną nazwę katalogu, więc możesz wstawić tam linię /path/to/the/, która doda ten katalog do ścieżki.

Możesz również użyć zmiennej środowiskowej PYTHONPATH, która jest podobna do zmiennej systemowej PATH, ale zawiera katalogi, do których zostaną dodane sys.path. Zobacz dokumentację .

Pamiętaj, że bez względu na to, co robisz, sys.pathzawiera katalogi, a nie pliki. Nie możesz „dodać pliku do sys.path”. Zawsze dodajesz jego katalog, a następnie możesz zaimportować plik.


1
ok dzięki, w porządku, dodałem mój katalog, który składa się z pliku i jego pracy, gdy zaimportowałem plik z innej lokalizacji, ale problem, gdy wyszedłem z ipythona i ponownie zajrzałem, aby sprawdzić moją ścieżkę, nie pojawia się, nie chcę tego robić za każdym razem, gdy wprowadzałem kod, chcę na stałe dodać ścieżkę do katalogu sys.path, jak to zrobić
— Shiva Krishna Bavandla

@Kouripm: Twój komentarz sugeruje, że w rzeczywistości nie zastosowałeś się do mojej sugestii ani sugestii w zduplikowanym poście, do którego link znajduje się powyżej.
— BrenBarn

1
sitePakiet był doskonały.
— Zeinab Abbasimazar

8
rozwiązałem mój problem z sys.path.append('C:\\python34\\lib\\site-packages')podziękowaniem!
— tylerlindell

Dla potomności: .pthplik jest tym, co dokumentacja modułu lokacji nazywa a path configuration file. Uwaga dotycząca pliku konfiguracyjnego ścieżki:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
— Minh Tran

1

Ten sposób zadziałał dla mnie:

dodanie ścieżki, którą lubisz:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

sprawdzanie: możesz uruchomić 'eksport' cmd i sprawdzić wyjście lub możesz to sprawdzić za pomocą tego cmd:

python -c "import sys; print(sys.path)"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.