2017-09-17 9 views
1

제가 작업해온 Python 모듈이 있습니다. 불행히도 컴파일 된 C 코드가 번들로 제공되어야합니다. 나는 Travis와 Windows가 설치된 Linux와 OSX에서 Appveyor를 사용하여 구축했습니다.PyPI를 배포 할 때 어떤 아키텍처와 OS를 대상으로해야합니까?

목표로 삼아야하는 아키텍처, OS 및 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 오래된 고대 RHEL이 붙어 있지만 2.6은 오래전에 EOL 처리되었습니다. 3.0 및 3.1은 아무도 전혀 생산하지 않았습니다. 3.2, 3.3은 오래된 유닉스 서버에만 있으며 많은 새로운 소프트웨어 개발이 의심 스럽다. 어쨌든, 나는 2.7 + 3.4 +와 비교할 수있는 용이성을 제공 할 수있는 대상을 대상으로합니다. 어쨌든 다른 사람들은 허리 깊숙이 들어갈 것이기 때문에 확장을 편집하는 것에 신경 쓰지 않을 것입니다.

트래비스/어플라이언터의 경우, 위험스럽게도 스택 오버플로와 관련이없는 리소스 요청과 비슷하게 들립니다.

그러나 나는 Python Packaging Authority이 Docker 용 manylinux 리눅스 이미지를 제공한다는 힌트를 줄 수 있습니다. 이들은 Centos 5를 기반으로하며 CPython 2.6, 2.7, 3.3, 3.4, 3.5 및 3.6이 있습니다. 그들은 manylinux1 태그로 바퀴를 만드는 데 사용됩니다. 공식 manylinux demo project도 있습니다. ARM에 관해서는


는 - 거기에 너무 많은 변종 지원하는 방법이 있습니다. 예를 들어 Linux는 x86보다 ABI가 훨씬 많습니다. 예를 들어 하드 플로팅 포인트와 소프트 플로팅 포인트의 구별이 있습니다. 32 대 64 비트 등 ... ARM 개발자 대부분은 자신의 이상한 아키텍처를 위해 모듈을 잘 컴파일 할 수 있습니다.