2009-09-02 74 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