2010-04-14 15 views
22

Me gustaría lanzar un módulo de Python que escribí que depende de varios paquetes. ¿Cuál es la forma más fácil de hacerlo para que estos paquetes se descarguen por programación en caso de que no estén disponibles en el sistema que se está ejecutando? La mayoría de estos módulos deberían estar disponibles mediante easy_install o pip o algo así. Simplemente quiero evitar que el usuario instale cada módulo por separado.¿La manera más fácil de descargar automáticamente los módulos requeridos en Python?

gracias.

+0

La mayoría de los sistemas de administración de paquetes tienen una forma de especificar las dependencias de un paquete para que las dependencias se instalen automáticamente. No sé cómo hacerlo con setuptools/Python Package Index, pero supongo que hay un mecanismo para especificar dependencias de manera similar. –

Respuesta

4

Véase el setuptools docs sobre cómo declarar sus dependencias - esto permitirá easy_install para encontrar, descargar e instalar todos ellos (y clausura transitiva de los mismos), si todo está disponible en PyPi, o de otra manera si se especifica URL las dependencias.

+0

¿Qué opinas sobre pip? Las comparaciones de pip con las herramientas de configuración parecen muy redactadas ... ¿existe realmente un consenso en la comunidad de Python de que pip es mejor? – user248237dfsf

+0

Además, ¿puede manejar las dependencias que no son PyPi, como setuptools? – user248237dfsf

+0

@usuario, desafortunadamente no tengo mucha experiencia directa con pip, pero mi impresión es que puede hacer lo que 'easy_install' puede, y más. Como dice http://www.b-list.org/weblog/2008/dec/15/pip/, "pip no cambia el flujo de trabajo de su empaquetado de ninguna manera. Simplemente hace que su paquete sea como siempre lo ha hecho , y luego colóquelo en la Web en algún lugar (preferiblemente incluyéndolo en el índice del paquete de Python, pero no es necesario si no lo desea) y las personas que usen pip pueden tomarlo e instalarlo ". –

21

pip utiliza requirements files, que tienen a very straightforward format.

Para obtener más recomendaciones sobre herramientas de empaquetado de Python, consulte el latest from the Python Packaging Authority (PyPA).

+0

@ J.F. Yo diría que Idan Gazit es responsable de la primera imagen; No estoy seguro de quién es el responsable de la segunda. Ambos están alojados en Amazon S3; las ubicaciones de las imágenes apuntan a sus ubicaciones S3, por lo que puede copiar las ubicaciones de las imágenes y usarlas aquí y en cualquier otro lugar. Vi a los "Compañeros de Python" en la charla de PyCon 2010 de Titus Brown; el "New Hotness" ha existido por tal vez un año. Tal vez algunas investigaciones en las listas de correo de Python pueden revelar la (s) fuente (s) original (es). – gotgenes

+0

Aunque esta es actualmente la respuesta más votada, en realidad no ofrece mucha solución (sin embargo, genial gráfico). Actualmente encontré [esta publicación reciente] (https://caremad.io/blog/setup-vs-requirements/) sobre el tema. Podría ayudar a otros en esta búsqueda. – bnjmn

+0

Aparentemente, distribuir [ahora está en desuso] (https://pythonhosted.org/distribute/) – fabian789

Cuestiones relacionadas