在 pypi python setup.py 中指定可选依赖项

Posted

技术标签:

【中文标题】在 pypi python setup.py 中指定可选依赖项【英文标题】:Specifying optional dependencies in pypi python setup.py 【发布时间】:2012-05-21 07:18:03 【问题描述】:

如何在 python 的setup.py 中指定可选依赖项?

这是我为我的开源库指定可选依赖项的尝试,但它似乎没有多大作用。

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

在这个sn-p中特别是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='calvin@calvinx.com',
    install_requires=['cherrypy-wsgiserver'],
    extra_requires=['newrelic'],
    url='https://github.com/od-eon/django-cherrypy',
)

建议?

【问题讨论】:

还有人觉得“可选依赖”这个词很有趣吗?我愿意。 这可能很有趣,但它确实很有意义。您可以设计在 lib 不存在时将被禁用的可选功能(例如,优化),而不会破坏程序中的任何内容。更常见的是,能够声明 dev 依赖项实际上非常方便,例如 npm does. 【参考方案1】:

您的关键字不正确。是extras_require 和it's supposed to be a dict.

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

【讨论】:

谢谢@voithos。我应该有rtfm。您在上面推荐的链接 (peak.telecommunity.com/DevCenter/…) 有很大帮助!

以上是关于在 pypi python setup.py 中指定可选依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 setup.py 安装托管在私有 PyPI 中的包?

发布本地的python程序到pypi服务器

TravisCI 部署找不到 setup.py

使用 python setup.py install 时出现“错误:‘remap’不是‘cv’的成员”

怎么安装python模块,如何安装python模块,常用安装方式

在 setup.py 中使用额外的 python 包索引 url