2012-05-13 16 views
21

Come si specificano le dipendenze opzionali in Python setup.py?Specifica delle dipendenze opzionali in pypi python setup.py

Ecco il mio tentativo di specificare una dipendenza opzionale per una mia libreria open source ma non sembra fare molto.

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

In particolare extra_requires in questo frammento:

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', 
) 

Suggerimenti?

+0

Qualsiasi altro trovare il termine "dipendenze opzionali" divertente? Lo voglio. –

+0

Divertente, ma sicuramente ha molto senso. È possibile progettare funzionalità opzionali che saranno disabilitate se la lib non è presente (ad es., Un'ottimizzazione) senza rompere nulla nel programma. Più comunemente, è davvero molto utile poter dichiarare le dipendenze ** dev **, come [npm fa] (https://stackoverflow.com/questions/18875674). –

risposta

23

Hai una parola chiave errata. E 'extras_require, e it's supposed to be a dict.

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

Grazie a @voithos. Dovrei avere rtfm. Il tuo link consigliato sopra (http://peak.telecommunity.com/DevCenter/setuptools#declaring-extras-optional-features-with-the-own-dependencies) aiuta molto! –

Problemi correlati