【问题标题】:Python .pth Files Aren't WorkingPython .pth 文件不工作
【发布时间】:2010-11-25 02:12:18
【问题描述】:

我的 .pth 配置文件中列出的目录没有出现在 sys.path 中。

配置文件的内容,命名为some_code_dirs.pth

/home/project

文件路径:

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

在 python 解释器中检查 sys 变量:

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

这一切似乎都符合 Python documentation 的要求,但 sys.path 不包括 /home/project 目录。

请注意,解释器确实将目录添加到:

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

我在这里错过了什么?

【问题讨论】:

  • 请包含sys.path的值

标签: python pythonpath


【解决方案1】:

您使用的是什么操作系统?在我的 Ubuntu 9.04 系统上,该目录不在 sys.path 中。 尝试将其放入/usr/lib/python2.6/dist-packages。请注意,它是 dist 而不是 site

【讨论】:

  • 是的,Ubuntu 使用 Python 的库路径做了一些奇怪而复杂的事情,试图使其适合他们的打包系统。与标准的默认编译 Python 安装相比,很少有相同的地方。 :-(
  • 这有效——使用 dist-packages 中的 .pth 文件,/home/project_root 显示在解释器的 sys.path 中。 /usr/lib/python2.6 is 在 sys.path 中,并且 .pth 文件的副本在该目录中,所以我不明白为什么 python 不选择它。我想这也是一个 Ubuntu 配置问题。我只是一个鸡蛋,但这似乎是 Ubuntu 人的一组奇怪的选择。
  • 好吧,我不认为 python 解释器会从 sys.path 中的每个路径导入 .pth 文件。
【解决方案2】:

不久前我有一个similar problem。检查您的 pth 文件的编码。如果使用 BOM 以 UTF-8 编码,似乎 pth 文件会被静默忽略。

【讨论】:

  • 这是可以理解的,因为“带有 BOM 的 UTF-8”是伪造的,并且与 ASCII 不兼容(这就是 pth 文件)!奇怪的是在 linux 机器上看到,因为它通常只有损坏的 Windows 应用程序才能产生它们。
猜你喜欢
  • 2014-10-31
  • 1970-01-01
  • 2013-02-18
  • 2018-12-26
  • 1970-01-01
  • 2017-09-11
  • 2010-10-16
  • 2011-03-28
  • 1970-01-01
相关资源
最近更新 更多