我可以为多个版本的python创建一个鸡蛋吗?

问题描述

| 我们有一个通过一系列鸡蛋运行的本地系统。目前,这意味着每个人都必须安装Python 2.5的副本。是否可以创建一个可以被Python 2.5、2.6和2.7使用的鸡蛋(理想情况下还可以是任何更高版本)? 显然,python代码必须在所有三个版本下运行。同样显然,这个鸡蛋不能包含任何C扩展名。不太明显的是,鸡蛋必须包含python源(.py)文件,而不是.pyc文件。 另外,我知道我们可以创建三个鸡蛋(或者可以用三个名称复制一个鸡蛋),但这似乎是错误的。     

解决方法

仅分发源tarball;易于安装(或pip或buildout,或您使用的任何程序包依赖性管理器/安装程序)将为您创建用于安装它的python版本的鸡蛋。 您只需要创建蛋以仅分发给具有C扩展名的软件包,然后再分发给Windows,这是因为大多数Windows系统缺少自己构建蛋所需的工具。 看看PyPI可以看到许多示例,例如zope.interface页面。请注意,只有适用于Windows的python 2.4、2.5和2.6版本的.egg发行版。其他所有内容仅使用
.tar.gz
tarball下载并根据需要在本地构建
.egg
。 使用
setup.py sdist
命令构建源tarball。我个人使用jarn.mkrelease;它为您自动完成了许多流程(例如将源分发上传到分发服务器)。