为什么easy_install会提取一些蟒蛇蛋而不是其他?

时间:2010-04-09 01:45:34

标签: python egg

查看我的/usr/local/lib/python.../dist-package目录,我有.egg个目录和.egg个文件。

为什么安装程序会选择将额外的软件包添加到.egg目录,但保留其他.egg个扩展名的文件?

2 个答案:

答案 0 :(得分:29)

如果软件包只包含纯Python代码,它可以只保留一个egg文件。 Python解释器可以直接从egg加载Python模块。如果软件包包含用C或其他数据编写的模块,则需要提取egg,以便可以访问C模块和/或数据。我认为这是包的默认行为。较新版本的Python可能能够从egg文件加载C模块;我不确定那部分。

该软件包的创建者还可以通过将zip_safe = False传递给setup()中的setup.py来专门指示安装程序解压缩软件包。

最后,进行安装的人可以通过传递-Z选项或在pydistutils.cfg中设置zip_ok = false来明确告诉easy_install解包鸡蛋。

答案 1 :(得分:4)

我无法解释为什么有些鸡蛋被压缩(文件),有些是目录,但我可以提供:如果你讨厌拉链蛋(就像我一样)把它放在你的[easy_install]部分~/.pydistutils.cfg

zip_ok = false