2009-09-02 13 views
6

Katalogi wymienione w pliku konfiguracyjnym .pth nie pojawiają się w sys.path.Python .pth Pliki nie działają

Zawartość pliku konfiguracyjnego, nazwane some_code_dirs.pth:

/home/project 

Ścieżki do pliku:

/usr/lib/python2.6/site-packages/some_code_dirs.pth 
/usr/lib/python2.6/some_code_dirs.pth 

Sprawdź na zmiennych sys w interpretera Pythona:

>>> print sys.prefix 
'/usr' 
>>> print sys.exec_prefix 
'/usr' 

Wszystko to wydaje się wymagać w Python documentation, ale sys.path doesn t zawiera katalog/home/project.

Zauważ, że interpreter robi dodać katalog po:

>>> site.addsitedir('/usr/lib/python2.6/site-packages') 

Co ja tu brakuje?

+1

Proszę podać wartość 'sys.path' –

Odpowiedz

4

Z jakiego systemu operacyjnego korzystasz? W moim systemie Ubuntu 9.04 ten katalog nie znajduje się w sys.path. Spróbuj umieścić go w /usr/lib/python2.6/dist-packages. Zauważ, że jest to dist zamiast witryna.

+0

Tak, Ubuntu robi dziwne i zawiłe rzeczy za pomocą bibliotek Pythona, próbując dopasować je do swojego systemu pakowania. Bardzo niewiele jest w tym samym miejscu w porównaniu ze standardową instalacją Pythona opartą na domyślnej kompilacji. :-( – bobince

+1

To zadziałało - z plikiem .pth w dist-packages,/home/project_root pojawia się w sys.path w tłumaczu: /usr/lib/python2.6 _jest_ w sys.path, a kopia pliku .pth znajduje się w tym katalogu, więc nie rozumiem, dlaczego Python tego nie robi. Przypuszczam, że to także problem z konfiguracją Ubuntu Jestem tylko jajem, ale to wydaje się dziwne zbiór wyborów przez użytkowników Ubuntu – chernevik

+0

Cóż, nie sądzę, że interpreter python importuje pliki .pth z każdej ścieżki w sys.path. –

0

Niedawno miałem similar problem. Sprawdź kodowanie pliku pth. Wydaje się, że pliki pth są dyskretnie ignorowane, jeśli są kodowane w UTF-8 z BOM.

+0

To byłoby zrozumiałe, ponieważ "UTF-8 z BOM" jest fałszywe, a nie kompatybilny z ASCII (czyli tym, czym są pliki pth)! Odd do zobaczenia na pudełku linuksowym, ponieważ zwykle są to tylko uszkodzone aplikacje Windows, które je tworzą. – bobince

Powiązane problemy