为不同的python版本准备Pypi包

时间:2016-04-05 10:18:04

标签: python python-3.x pip python-2.x pypi

我正在为Pypi准备一个包,用于计算Markov chains with discrete state spaces的稳态分布。

带有代码的主文件在Python 2.7和Python 3.5上都运行没有问题(在虚拟环境中测试)。 setup.py文件似乎也可以工作,至少对于Python 2.7。

从这一点开始,我不清楚如何继续。我应该在所有可能的Python版本上运行setup.py来为每个Python版本创建单独的“egg”文件吗?考虑到文件在两个Python版本上运行,这似乎相当繁琐,而且每次更新软件包时都必须重做这个。

这里有什么好习惯?

1 个答案:

答案 0 :(得分:3)

如果您正在寻找一个好的发布清单(回答问题"在推送到pypi之前该怎么做?"),您无法通过Audrey Roy&# 39; s PyPI Release Checklist。这是一份活文件,并根据需要进行更新,但最重要的是:

  • 更新您的更改日志
  • 更新您的版本号
  • 运行测试
  • 使用源分发(sdist)和较新的轮格式构建pypi。
  • 推送至pypi test instance(使用twine
  • 检查您的README是否正确呈现
  • 测试测试实例中的安装是否正常工作
  • 推向pypi生产
  • 更新git存储库标签/版本

其他不太重要的事情可能包括:

关于鸡蛋问题的要素 - 它们不再需要(因为引入了轮子格式)。请考虑在.gitignore文件中添加一些内容,以防止它们被添加到您的存储库中。基本上,除非你使用本机代码,你需要做的就是部署sdists和wheel,你应该没问题。

关于"运行没有问题" 考虑将您的示例转换为测试,然后在每个版本中运行这些测试。您可以在本地使用tox,也可以使用travisappveyor等服务。如果您的行为应该在版本之间保留,这一点尤为重要 - 这是semantic versioning的重要组成部分