我可以为多个版本的Python创建一个egg吗?

4 投票
1 回答
1676 浏览
提问于 2025-04-16 18:23

我们有一个本地系统,它是通过一系列的“蛋”(egg)来运行的。目前,这意味着每个人都必须安装Python 2.5的副本。请问有没有办法创建一个可以被Python 2.5、2.6和2.7使用的“蛋”(最好还能支持更高版本)?

显然,这段Python代码必须能够在这三个版本下运行。同样显而易见的是,这个“蛋”不能包含任何C语言扩展。稍微不那么明显的是,这个“蛋”必须包含Python源代码(.py文件),而不是编译后的.pyc文件。

另外,我知道我们可以创建三个不同的“蛋”(或者可能用三个名字复制一个“蛋”)——但这样做似乎不太对。

1 个回答

2

只需要分发源代码的压缩包就可以了;使用 easy-install(或者 pip、buildout,或者你用的其他包管理工具)会为你创建一个适合安装时使用的 Python 版本的 egg 文件。

你只需要为带有 C 扩展的包创建 egg 文件,而且这通常只在 Windows 系统上需要,因为大多数 Windows 系统缺少自己构建 egg 文件所需的工具。

你可以去 PyPI 看看很多这样的例子,比如 zope.interface 页面。注意,在那里只有适用于 Windows 的 Python 版本 2.4、2.5 和 2.6 的 .egg 文件。其他的包都是下载 .tar.gz 格式的压缩包,然后根据需要在本地构建 .egg 文件。

你可以使用 setup.py sdist 命令来构建源代码的压缩包。个人来说,我使用 jarn.mkrelease;它会为你自动化很多流程(比如把源代码分发上传到分发服务器上)。

撰写回答