PYTHONPATH在站点包之外发布版本化包名称

时间:2011-07-07 20:29:33

标签: python pythonpath

在尝试解决程序包管理问题here时,我了解到我可能在使用PYTHONPATH访问site-packages目录之外的程序包时遇到问题。

当所述目录不在python site-packages目录中时,尝试从其版本化目录文件夹名称(即wxPython)导入包中的模块(例如wx-2.8-msw-unicode)时收到导入错误

重新创建问题:在python目录之外创建一个目录,比如C:\foo。下载wxPython,并将其放在该目录中(提供C:\foo\wx-2.8-msw-unicode)。如果你愿意,可以添加更多将目录C:\foo添加到PYTHONPATH环境变量中。打开一个新的python交互式shell并运行

import sys
for i in sys.paths:
    print i

验证路径是否在那里(它是),然后

import wx

我收到导入错误。我究竟做错了什么?这种行为是否正确?

1 个答案:

答案 0 :(得分:0)

据我了解你所说的,这是预期的行为。 C:\foo位于Pythonpath中,但它不包含可导入的wx模块。要使import wx成功,必须直接在Python路径的其中一个目录中找到wx.(py/pyc/pyd/dll/so)或包含文件wx的目录__init__.py之一。

安装程序通常会进行排序,确保它位于可导入的位置。如果您想自己动手,则必须确保wx最终位于可导入的位置。