2012-05-13 36 views
21

Python'un setup.py içerisindeki isteğe bağlı bağımlılıkları nasıl belirlerim?İsteğe bağlı bağımlılıkları pypi python setup.py içinde belirtme

Açık kaynak kodlu bir kütüphane için isteğe bağlı bağımlılık belirtme noktasında bir şey var ama çok fazla bir şey yapmıyor gibi görünüyor. Bu snippet'indeki

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

Özellikle extra_requires:

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

Öneriler?

+0

Herhangi bir kimse "isteğe bağlı bağımlılıklar" komik terimini bulmak? Ben yaparım. –

+0

Komik olabilir, ama kesinlikle çok mantıklı. Programda hiçbir şeyi kırmadan lib (örneğin, bir optimizasyon) yoksa, devre dışı bırakılacak opsiyonel özellikleri tasarlayabilirsiniz. Daha yaygın olarak, aslında [dev/dak] (https://stackoverflow.com/questions/18875674) gibi ** dev ** bağımlılıklarını bildirebilmek oldukça kullanışlıdır. –

cevap

23

Yanlış bir anahtar kelimeniz var. Bu extras_require, ve it's supposed to be a dict.

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

Teşekkürler @voithos. Rtfm olmalı. Yukarıda önerilen bağlantınız (http://peak.telecommunity.com/DevCenter/setuptools#declaring-extras-optional-features-with-their-own-dependencies) çok yardımcı oluyor! –

İlgili konular