如何解压Python的egg文件?

3

我正在尝试使用py2exe时打包一些蛋(egg)依赖项,正如在py2exe网站上所述,它不支持这些依赖项,因此我需要先解压它们。我尝试首先运行easy_install -m lxml,然后再运行easy_install --always-unzip lxml==2.2.2,但这并没有起作用。然后我尝试将解压缩行为设置为默认值,将其放置到distutils.cfg中。我没有找到后者文件,所以我创建了一个HOME环境变量,并在那里创建了一个pydistutils.cfg文件,并添加了以下内容:

[easy_install]
zip_ok = 0

但是 easy_install 仍然无法解压这些 egg 文件。有什么最简单的方法可以解决这个问题吗?

没有理由解压选项不起作用,除非你只是打错了。尝试使用该选项的“-Z”版本... 你确定它没有正确地解压缩吗?检查easy-install.pth以查看实际存在的条目。lxml蛋文件被标记为“not-zip-safe”,因此无论如何都不能安装为蛋。 - Peter Hansen
2个回答

2

快速解决方案/变通方法:egg文件只是zip文件,因此您可以使用python zipfile模块对其进行解压缩。也许您可以将easy_install文件重命名为“easy_install_pre.exe”,并创建一个新的.bat文件命名为“easy_install.bat”:

easy_install_pre.exe %1
unzip_eggs.py %1

你确定这些操作后它们仍然能正常工作吗? - Fluffy
1
我以前解压过egg文件,并且在使用py2exe时没有出现任何问题。在那些情况下,我将解压后的文件重命名为包名称,并将其放入我的源目录中。话虽如此,我现在使用distribute,并默认将我的egg文件解压缩到.egg目录中。 - Ryan Ginstrom

0

在重新安装之前,应该先删除压缩包文件。然后就很容易了。

如果首先删除了压缩包,那么问题中描述的所有解压安装方法都可以使用,但不删除压缩包则无法使用。在解压安装后重新安装压缩包,则可以通过正常升级而无需删除任何内容。这在一些旧的 easy_install 版本中很典型,大约与 Python 2.5 时期相关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接