2009-09-02 8 views
6

Verzeichnisse, die in meiner .pth-Konfigurationsdatei aufgeführt sind, werden nicht in sys.path angezeigt.Python .pth-Dateien funktionieren nicht

Der Inhalt der Konfigurationsdatei mit dem Namen some_code_dirs.pth:

/home/project 

Wege in die Datei:

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

prüfen auf sys Variablen in der Python-Interpreter:

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

All dies scheint wie in Python documentation erforderlich, aber sys.path doesn ' t Schließen Sie das Verzeichnis/home/project ein.

Beachten Sie, dass der Dolmetscher tut das Verzeichnis hinzuzufügen nach:

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

Was soll ich hier fehlt?

+1

Bitte geben Sie den Wert von 'sys.path' an. –

Antwort

4

Welches Betriebssystem verwenden Sie? Auf meinem Ubuntu 9.04 System befindet sich dieses Verzeichnis nicht in sys.path. Versuchen Sie es in /usr/lib/python2.6/dist-packages zu setzen. Beachten Sie, dass es sich um dist anstelle von Website handelt.

+0

Ja, Ubuntu macht einige seltsame und komplizierte Dinge mit Pythons Bibliothekspfaden, um zu versuchen, es zu ihrem Verpackungssystem zu passen. Sehr wenig ist an der gleichen Stelle verglichen mit einer Standard-Python-Installation. :-( – bobince

+1

Das hat funktioniert - mit der .pth-Datei in dist-Pakete,/home/project_root zeigt sich in sys.path im Interpreter. /usr/lib/python2.6 _is_ in sys.path und a Kopie der .pth-Datei ist in diesem Verzeichnis, also verstehe ich nicht, warum Python das nicht aufgreift. Ich nehme an, das ist auch ein Ubuntu-Konfigurationsproblem. Ich bin aber ein Ei, aber das scheint wie ein seltsames Auswahlmöglichkeiten durch die Ubuntu-Leute – chernevik

+0

Nun, ich denke nicht, dass der Python-Interpreter .pth-Dateien von jedem Pfad in sys.path importiert –

0

Ich hatte eine similar problem vor einer Weile. Überprüfen Sie die Codierung Ihrer pth-Datei. Es scheint, dass Pth-Dateien stillschweigend ignoriert werden, wenn sie in UTF-8 mit BOM codiert sind.

+0

Das wäre verständlich, da "UTF-8 mit BOM" gefälscht ist und nicht kompatibel mit ASCII (das ist, was Pth-Dateien sind)! Seltsam, um auf einer Linux-Box zu sehen, da es in der Regel nur gebrochene Windows-Anwendungen ist, die sie produzieren. – bobince

Verwandte Themen