2012-05-13 13 views
21

pythonのsetup.pyでオプションの依存関係を指定する方法を教えてください。pypi python setup.pyでオプションの依存関係を指定する

私のオープンソースライブラリにオプションの依存関係を指定するのは私のスタブですが、それほど多くはないようです。

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

提案:このスニペットで

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

具体的extra_requires

+0

ですか?私がやります。 –

+0

面白いかもしれませんが、確かに意味があります。プログラムに何も侵害することなくlibが存在しない場合(例えば最適化など)、無効になるオプション機能を設計することができます。もっと一般的には、[npm does](https://stackoverflow.com/questions/18875674)のように、** dev **の依存関係を宣言できるのは実際にはとても便利です。 –

答えて

23

不適切なキーワードがあります。これは、他のいずれかが面白い用語「オプションの依存関係」を見つけるextras_require、およびit's supposed to be a dict.

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

ありがとう@voithos。私はrtfmを持っているべきです。上記のあなたの推奨リンク(http://peak.telecommunity.com/DevCenter/setuptools#declaring-extras-オプション - 機能と - それらの - 依存関係)は大いに役立ちます! –

関連する問題