在PyPI上分发时,我应该定位哪些体系结构和操作系统?

时间:2017-09-17 04:58:16

标签: python pypi python-wheel

我有一个我正在研究的Python模块。也许不幸的是,它需要一些已编译的C代码与它捆绑在一起。我已经使用Travis和带有Appveyor的Windows在Linux和OSX中构建它。

我想知道我是否应该定位一套推荐的体系结构,操作系统和Python API版本。我的直觉是,我应该尝试全面,并为Python 2.6,2.7和3.0 - 3.6中的每一个执行x86和x86_64。这可能已经有相当多的发行版,但还有其他我想不到的吗? ARM?

更广泛地说,是否有一组Travis和Appveyor文件可以设置适当的矩阵来管理这种构建和分发?

1 个答案:

答案 0 :(得分:2)

2.6很久以前就已经被淘汰了,虽然一些可怜的古老RHEL可能会坚持下去。完全没有人在生产中使用3.0和3.1; 3.2,3.3仅在较旧的Unix服务器上,我怀疑看到了很多新的软件开发。无论如何,我的目标是2.7 + 3.4+以及那些可以比较轻松地提供的东西;其他任何人都不会介意编译扩展,因为无论如何,他们都会在腰部深处。

至于Travis / Appveyor的事情,这听起来像资源请求一样危险,它与Stack Overflow无关。

但是,我可以提示Python Packaging Authority为Docker提供manylinux Linux映像;这些都是基于Centos 5,并有CPython 2.6,2.7,3.3,3.4,3.5和3.6。他们习惯用manylinux1标签制作轮子。还有一位官员manylinux demo project

对于ARM--有方式支持太多变种。例如,Linux的ABI比x86多得多。例如,硬浮点与软浮点的区别; 32对64位......等大多数ARM开发人员可以很好地为他们的奇数架构编译模块。