Python Pypi:你发布适用于不同Python版本的包的流程是什么?(Linux)

5 投票
2 回答
881 浏览
提问于 2025-04-15 14:46

我在Pypi上维护了几个软件包,但到目前为止,我一直只关注Python 2.5版本。现在我想同时支持Python 2.5和Python 2.6版本,并希望这个过程能够自动化,也就是说:

  1. 运行测试
  2. 生成文档
  3. 准备软件包
  4. 上传到Pypi

你们是怎么做到的呢?

还有一个相关的问题:我该如何标记一个软件包,使其可以在所有版本的Python上使用,也就是“版本独立”?

2 个回答

0

我用一个脚本来切换我的Python版本,运行测试,然后切换到下一个Python版本,再运行测试,依此类推。我这样做是为了在2.3、2.4、2.5、2.6和3.1这几个版本上进行测试。此外,我还在两种不同的配置场景下运行所有测试(有C扩展和没有C扩展),所以我的完整测试套件总共要运行10次。

我用类似的脚本来构建安装包,不过我会为每个版本构建Windows安装程序,然后再构建一个源代码包。

上传的部分,我都是手动完成的。

至于文档,只需要构建一个版本,这个是通过一个Makefile目标来完成的。

这些都是为了coverage.py而做的,你可以在bitbucket上看到代码,不过我得提醒你,这些是.cmd格式的Windows脚本。

1

你只需要为Windows发布可执行文件,前提是你的软件包使用了C扩展,也就是说里面有编译过的部分。否则,你只需要发布一个源代码包就可以了。这对于所有平台上的所有Python版本来说都是足够的。

如果没有构建机器人,自动化测试不同版本的Python会比较麻烦。但是一旦你用2.5和2.6版本跑过测试,发布的时候只需要运行 python setup.py sdist register upload 这条命令,使用什么Python版本来运行都没关系。

撰写回答