在我的/usr/local/lib/python.../dist-package目录下,我有.egg文件夹和.egg文件。
为什么安装程序选择将软件包提取到.egg目录中,而将其他具有.egg扩展名的文件保留?
为什么安装程序选择将软件包提取到.egg目录中,而将其他具有.egg扩展名的文件保留?
如果包只包含纯Python代码,可以将其保留为egg文件。Python解释器可以直接从egg加载Python模块。如果包含使用C或其他数据编写的模块,则需要提取egg以便访问C模块和/或数据。我相信这是包的默认行为。较新版本的Python可能能够从egg文件加载C模块;对于这一点我不太确定。
软件包的创建者还可以通过在其setup.py
中使用 setup()
时传递 zip_safe = False
,明确指示安装程序解压缩软件包。
最后,进行安装的人可以通过传递-Z
选项或在pydistutils.cfg
中设置zip_ok = False
来明确告诉easy_install
解压缩egg文件。
我无法解释为什么有些鸡蛋是压缩文件,而有些是目录,但我可以提供以下建议:如果你不喜欢压缩的鸡蛋(就像我一样),请将以下内容放在~/.pydistutils.cfg
文件的[easy_install]
部分:
zip_ok = false