2011-05-26 142 views
3

我们有一个通过一系列鸡蛋运行的本地系统。目前这意味着每个人都必须安装Python 2.5的副本。是否有可能创建一个可以被Python 2.5,2.6和2.7使用的鸡蛋(理想情况下还有更高版本)?我可以为多个版本的Python创建一个蛋吗?

很明显,python代码必须在所有三个版本下运行。同样显然,这个蛋不能包含任何C扩展名。稍微不太明显,鸡蛋必须包含python源(.py)文件,而不是.pyc文件。另外,我知道我们可以创建三个蛋(或者可能用三个名字复制一个蛋) - 但这似乎是错误的。

+0

你的软件包包含仅Python代码还是C扩展? – 2011-05-26 11:05:34

+0

“但这似乎是错误的”为什么?拥有Python版本特定的鸡蛋更简单。它使审计和确认一个正确的环境变得更容易。 – 2011-05-26 11:09:49

+2

您不需要特定版本的Python for Python-only软件包 – 2011-05-26 11:31:04

回答

1

只分发源码tarball;易于安装(或者点或者扩展,或者你使用的任何软件包依赖管理器/安装程序)会为你安装用于安装它的python版本创建一个egg。

您只需要创建一个只用于包含C-extensions的包的发布的蛋,然后只用于Windows,因为大多数Windows系统缺少自己构建egg所需的工具。

看看PyPI看到很多这样的例子,比如zope.interface page。请注意,那里只有.egg发行版,用于Windows的Python版本2.4,2.5和2.6。其他一切只使用.tar.gz tarball下载并根据需要在本地构建.egg

使用setup.py sdist命令构建源代码tarball。我个人使用jarn.mkrelease;它可以为您自动完成大部分流程(如将源代码发布上传到分发服务器)。

相关问题