2012-05-13 23 views
21

¿Cómo especifico dependencias opcionales en python's setup.py?Especificación de dependencias opcionales en pypi python setup.py

Aquí está mi intento de especificar una dependencia opcional para una biblioteca de código abierto, pero parece que no hace mucho.

https://github.com/od-eon/django-cherrypy/blob/master/setup.py

Específicamente extra_requires en este fragmento:

setup(
    name='django-cherrypy', 
    version='0.1', 
    packages=packages, 
    license='LICENSE', 
    description='cherrypy, running under django', 
    long_description=open('README.md').read(), 
    author='Calvin Cheng', 
    author_email='[email protected]', 
    install_requires=['cherrypy-wsgiserver'], 
    extra_requires=['newrelic'], 
    url='https://github.com/od-eon/django-cherrypy', 
) 

Sugerencias?

+0

Cualquier otra persona encontrar el término "dependencias opcionales" gracioso? Hago. –

+0

Es gracioso, pero seguro tiene mucho sentido. Puede diseñar funciones opcionales que se deshabilitarán si la lib no está allí (por ejemplo, una optimización) sin romper nada en el programa. Más comúnmente, en realidad es muy útil poder declarar dependencias ** dev **, como [npm does] (https://stackoverflow.com/questions/18875674). –

Respuesta

23

Tiene una palabra clave incorrecta. Es extras_require y it's supposed to be a dict.

setup(
    name="django-cherrypy", 
    ... 
    extras_require = { 
     'mysterious_feature_x': ["newrelic"] 
    } 
) 
+0

Gracias @voithos. Debería tener rtfm. Su enlace recomendado arriba (http://peak.telecommunity.com/DevCenter/setuptools#declaring-extras-optional-features-with-their-own-dependencies) ¡ayuda mucho! –

Cuestiones relacionadas