我可以为多个版本的Python创建一个egg吗?
我们有一个本地系统,它是通过一系列的“蛋”(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;它会为你自动化很多流程(比如把源代码分发上传到分发服务器上)。