查看我的/usr/local/lib/python.../dist-package目录,我有.egg
个目录和.egg
个文件。
为什么安装程序会选择将额外的软件包添加到.egg
目录,但保留其他.egg
个扩展名的文件?
答案 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