2009-09-02 35 views
6

我的.pth配置文件中列出的目錄沒有出現在sys.path中。Python .pth文件不起作用

配置文件的內容,命名爲some_code_dirs.pth

/home/project 

路徑的文件:在Python解釋器上SYS變量

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

檢查:

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

這一切似乎在Python documentation中是必需的,但sys.path doesn'包括/ home/project目錄。

注意,解釋確實後添加目錄:

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

缺少什麼我在這裏?

+1

請包括'sys.path'的值 – 2009-09-02 20:43:14

回答

4

你在使用什麼操作系統?在我的Ubuntu 9.04系統上,該目錄不在sys.path中。 嘗試將其放入/usr/lib/python2.6/dist-packages。請注意,它是dist而不是站點

+0

是的,Ubuntu使用Python的庫路徑做了一些奇怪而令人費解的事情,試圖使它適合它們的打包系統。與標準的默認編譯Python安裝相比,非常少。 :-( – bobince 2009-09-03 00:37:39

+1

工作原理 - 在dist-packages中的.pth文件中,/ home/project_root顯示在解釋器的sys.path中。 /usr/lib/python2.6 sysispath中的_is_和.pth文件的副本位於該目錄中,所以我不明白爲什麼python不會選擇它。我想這也是Ubuntu配置問題。 我只是一個蛋,但這似乎很奇怪 – chernevik 2009-09-03 15:08:40

+0

嗯,我不認爲Python解釋器從sys.path中的每個路徑導入.pth文件。 – 2009-09-03 16:01:47

0

前段時間我有一個similar problem。檢查你的pth文件的編碼。如果以UTF-8和BOM編碼,pth文件似乎會被忽略。

+0

這是可以理解的,因爲「帶有BOM的UTF-8」是假的而不是兼容ASCII(這是第p個文件)!在Linux上看到奇怪,因爲它通常只是產生它們的破壞性Windows應用程序。 – bobince 2009-09-03 00:33:11