19

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

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

4

2 回答 2

32

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

包的创建者还可以专门指示安装程序解压缩包,zip_safe = False方法是setup()在他们的setup.py.

最后,进行安装的人可以easy_install通过传递-Z选项zip_ok = Falsepydistutils.cfg.

于 2010-04-09T02:09:08.280 回答
5

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

zip_ok = 假
于 2010-04-09T01:48:51.950 回答