python package setup.py

Cómo especificar dependencias al crear el archivo setup.py para un paquete de python



package (1)

Ignorar distutils . Si desea crear un paquete que especifique las dependencias para que una herramienta como pip salga a buscarlo, necesita basar su setup.py en off en la parte de setuptools .

setuptools dependencias de setuptools se enumeran en install_requires , que toma una lista:

setup(name=''MyStuff'', version=''1.0'', install_requires=[''progressbar''], # ... )

Las cuales deberían ser distribuciones propias. os y sys son módulos incluidos con Python y no deben ser listados .

El documento de Python para "Escribir el script de instalación ( http://docs.python.org/2/distutils/setupscript.html ) menciona que las dependencias se pueden especificar en la sección

> 2.4. Relaciones entre distribuciones y paquetes

[...] Estas relaciones se pueden especificar usando argumentos de palabras clave para la función distutils.core.setup ().

Las dependencias en otros módulos y paquetes de Python se pueden especificar al proporcionar el argumento de palabra clave de requisitos a setup (). El valor debe ser una lista de cadenas. Cada cadena especifica un paquete que se requiere y, opcionalmente, qué versiones son suficientes.

Para especificar que se requiere cualquier versión de un módulo o paquete, la cadena debe consistir completamente en el nombre del módulo o paquete. Los ejemplos incluyen ''mymodule'' y ''xml.parsers.expat''.

[...]

Teniendo en cuenta esta información bastante escasa sin un ejemplo, solo quiero asegurarme de que lo hago bien. Además, no encuentro que este parámetro requires en la descripción de la API http://docs.python.org/2/distutils/apiref.html#distutils.core.setup

Así se hace así, por ejemplo,

setup(name=''MyStuff'', version=''1.0'', requires=''os, sys, progressbar'', [...]

¡Espero que alguien me pueda dar un poco más de información! ¡Gracias!

EDITAR:

Para abordar la controversia de distutils.core, setuptools, uno podría simplemente hacer

try: from setuptools import setup except ImportError: from distutils.core import setup

¿Tiene sentido?