setup.py 中 extras_require 的依赖链接

Dependency links for extras_require in setup.py

  1. 有没有办法在安装带有 extras 的包时自动处理依赖链接,而不必像 install_requires 那样调用 --process-dependency-links

    pip install -e .[extra] --process-dependency-links
    

    我需要它,因为依赖项仅位于私有 git 存储库中。

  2. 是否可以使用 python setup.py install 安装附加功能?

  3. 是否仍要考虑 --process-dependency-links,因为它已被弃用?我不确定这里的状态。

  1. 是的,如果您使用 extras_require,则不再需要 --process-dependency-links

使用 pip 版本 19.3.1 测试

示例:

$ pip install -e .[graphs]

# setup.py  

from setuptools import setup
setup(
    name='myservice',
    version='0.1.0',
    install_requires=[
        'requests',
    ],
    extras_require={
        'graphs': [
            'graphcommons @ git+ssh://git@github.com/graphcommons/graphcommons-python@master',
        ],
    },
)

通过使用 ssh 协议(而不是 https)访问 git 存储库,您可以从您的私有存储库进行安装。

  1. 不确定 python setup.py installpip install .[extras] 应该足够好?

  2. 是的,在 pip 版本 19 中。

我搜索了太长时间无法弄清楚如何使用 setup.cfg 执行此操作所以希望这会帮助其他人,如果他们不想使用 setup.py 因为 OP 没有指定.我还为 install_requires 添加了自定义 URL,因为这也需要一段时间才能弄清楚。

#setup.cfg (only showing relevant parts)
[options]
install_requires =
    pyyaml @ git+https://github.com/yaml/pyyaml.git@master
    
[options.extras_require]
jsonschema = jsonschema @ git+https://github.com/Julian/jsonschema.git@v3.2.0
six = six
  1. pip install -e .[jsonschema] 会给你额外的自定义 URL 或 pip install -e .[jsonschema,six] 会给你两个额外的(注意 . 之后或周围没有空格额外列表中的逗号)。
  2. 据我所知,您无法使用 python setup.py install.
  3. 安装附加功能
  4. 是的,尽管有很多抱怨,但 --process-dependency-links 仍然被弃用,但是一旦你知道语法,上面的内容就足够了。