2012-07-16 19 views
6

Me gustaría empaquetar una aplicación científica de Python para PyPI. Mi problema es que depende de deps de nivel de PyPI (por ejemplo, numpy, scipy, etc.) así como de otros que deben tratarse en el nivel de sistema operativo: wxPython y Python-VTK (por ejemplo, con apt-get en Ubuntu, homebrew en OSX, etc.).Empaquetado de una aplicación de Python con dependencias de nivel de PyPI + OS

Me gustaría saber cuál sería la estrategia ideal para hacer esto, y en particular, qué sistema de embalaje encajaría mejor (actualmente estoy a favor de Distribute).

Respuesta

3

distribute es una horquilla de setuptools con mejor tal vez la documentación. Básicamente tiene distutils (stdlib) y setuptools como su elección. Como distutils no le permite especificar dependencias, solo queda setuptools.

En general, enumera todas las dependencias y documenta claramente el procedimiento de instalación (incluso en el campo long_description enviado a PyPI). Incluya los paquetes instalados a nivel del sistema operativo, la mayoría de las distribuciones incluyen la información del huevo cuando se instalan.

+0

Gracias Martijn. Además de enumerar y documentar claramente los pasos de instalación, ¿las herramientas de configuración proporcionan algún mecanismo adicional que podría ayudar a programar la instalación de los décaps de nivel del sistema operativo? Si no, me pregunto cuál sería el beneficio de registrar mi paquete en PyPI en absoluto (es decir, si requiere que el usuario realice pasos manuales adicionales, es decir, si no puede automatizar por completo el proceso). – cjauvin

+0

No, lo siento. Ni las herramientas de instalación ni las herramientas de instalación (pip, easy_install, zc.buildout) brindan soporte para eso. Pero, incluso para muchos huevos disponibles en PyPI, aún necesita instalar dependencias de nivel de sistema operativo; cxOracle requiere controladores oracle, PIL necesita libjpeg y demás, etc. Además, el sistema operativo instala algunas de sus dependencias, pero * puede * instalarse también como huecos. Este es un problema difícil de resolver solo con herramientas, por lo que la documentación es la mejor manera de hacerlo. –

Cuestiones relacionadas