2017-09-17 40 views
1

我有一個我一直在努力的Python模塊。也許不幸的是,它需要一些編譯的C代碼與它捆綁在一起。我在Linux和OSX上用Travey和Windows與Appveyor一起構建了它。在PyPI上發佈時,我應該定位哪些體系結構和操作系統?

我想知道是否有推薦的體系結構,操作系統和Python API版本,我應該瞄準。我的直覺是,我應該儘量全面,爲Python 2.6,2.7和3.0 - 3.6中的每一個做x86和x86_64。這可能已經是相當多的發行版了,但是有沒有其他的我沒有想到?臂?

更廣泛地說,是否有一套Travis和Appveyor文件設置適當的矩陣來管理這個構建和分發?

+0

請參閱https://pypi.python.org/pypi/cibuildwheel和https://github.com/matthew-brett/multibuild – phd

回答

2

2.6已經很久以前被EOL了,儘管一些可憐的古代RHEL可能會被卡住。沒有人使用3.0和3.1生產; 3.2,3.3只在舊的Unix服務器上,我懷疑看到很多新的軟件開發。無論如何,我的目標是2.7 + 3.4+以及那些可以比較輕鬆地提供的那些;無論如何,任何人都不會介意編譯擴展名,因爲他們會深陷其中。

至於Travis/Appveyor的東西,這聽起來像一個資源請求,這是堆棧溢出的主題。

但是,我可以給Python Packaging Authority提供manylinux Docker的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開發人員可以很好地爲自己的奇怪架構編譯模塊。

相關問題