我认为Python导入应该是自动的 解压缩site-packages中的egg文件。
我的安装似乎不想自动解压缩鸡蛋。我尝试了什么:
(1)我使用easy_install来安装suds模块,它复制了 鸡蛋文件到网站包。 Python无法导入它。 (进口泡沫)
(2)然后我使用了--always-unzip选项来easy_install。这一次吧 给了我一个目录而不是一个zip文件。 Python仍然无法导入suds模块。
(3)我重命名了目录suds。仍然找不到它。
(4)最后我将suds目录从解压缩的egg目录中复制到了 site-packags和Python发现它(毫不奇怪)。
对我来说,easy_install不是。这里缺少什么?
鲁弗斯
答案 0 :(得分:1)
默认情况下(如果您尚未指定多版本模式),easy_installing egg会在site-packages中的easy-install.pth
文件中添加一个条目。检查那里是否有肥皂蛋的参考。您还可以检查Python导入路径(Python将搜索模块的位置列表),如下所示:
import sys
print sys.path
您是否在easy_installed suds之前启动的Python shell中尝试import suds
?
这可以解释你所看到的行为。 .pth
文件仅在Python启动时读取,因此egg目录或zip文件不会出现在sys.path
中。从egg目录中复制suds
目录是有效的,因为site-packages
本身已经在sys.path
中。因此,请确保在安装鸡蛋后重新启动Python。
Python将从zip存档导入,但它不会将存档解压缩到site-packages中。也就是说,导入后它不会将解压缩的目录留在那里。 (我认为它是从zip文件中就地读取而不是在文件系统中的任何地方提取它。)我已经看到了一些问题,其中一些软件包不能用作压缩蛋(他们试图从文件中的位置读取数据 - 系统),所以我建议你像在(2)中一样使用--always-unzip标志。
您没有给出您使用的命令行。您是否为easy_install指定了-m选项?这将导致鸡蛋以多版本模式安装。默认情况下它不会在sys.path中,并且在尝试导入之前需要使用pkg_resources.require
函数。