2012-07-16 1 views
6

PyPI 용 Python 과학 응용 프로그램을 패키지화하고 싶습니다. 내 문제는 OS 레벨에서 처리해야하는 다른 것들뿐만 아니라 PyPI 수준의 deps (예 : numpy, scipy 등)에 의존한다는 것입니다 : wxPython 및 Python-VTK (예 : apt-get with Ubuntu, homebrew on OSX 등).PyPI + OS 수준 종속성을 사용하여 Python 응용 프로그램 패키징

이 작업을 수행하는 데 가장 이상적인 전략이 무엇인지, 특히 어느 패키지 시스템이 가장 적합 할 지 알고 싶습니다. (저는 현재 Distribute를 선호합니다).

답변

3

distribute은 설명서가 더 좋은 setuptools의 포크입니다. 기본적으로 distutils (stdlib) 및 setuptools을 선택할 수 있습니다. distutils은 종속성을 지정하지 않으므로 setuptools 만 남습니다.

일반적으로 모든 종속성을 나열하고 설치 절차를 명확하게 문서화합니다 (PyPI로 푸시 된 long_description 필드 포함). OS 레벨 설치 패키지를 포함 시키십시오. 대부분의 배포판에는 설치시 달걀 정보가 포함되어 있습니다.

+0

감사합니다. Martijn. 설치 단계를 명확하게 나열하고 문서화하는 것 외에도 setuptools는 OS 레벨 설치의 스크립팅을 도와 줄 수있는 몇 가지 추가 메커니즘을 제공합니까? 그렇지 않다면 필자는 내 패키지를 PyPI에 등록하면 어떤 이점이 있는지 궁금하다. 즉, 사용자가 추가 수동 단계를 수행해야하는 경우 (즉, 프로세스를 완전히 자동화 할 수없는 경우). – cjauvin

+0

아니요, 죄송합니다. setuptools 나 설치 도구 (pip, easy_install, zc.buildout)는이를 지원하지 않습니다. 그러나 PyPI에서 사용할 수있는 많은 계란이 있더라도 OS 레벨 종속성을 설치해야합니다. cxOracle은 오라클 드라이버가 필요하고, PIL은 libjpeg 등을 필요로합니다. 또한 의존성 중 일부는 os에 의해 설치되는 것이 가장 좋습니다. 그러나 * 역시 *로 설치 될 수 있습니다. 이것은 도구로만 해결할 수있는 어려운 문제이므로 문서화가 더 좋은 방법입니다. –