簡體   English   中英

setup.py 中 extras_require 的依賴鏈接

[英]Dependency links for extras_require in setup.py

  1. 有沒有辦法在安裝帶有附加功能的包時自動處理依賴關系鏈接,而不必像install_requires那樣調用--process-dependency-links

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

    我需要這個,因為依賴項僅位於私有 git 存儲庫上。

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

  3. --process-dependency-links仍被考慮,因為它已被棄用? 我不確定這里的狀態。

我搜索了太長時間,無法弄清楚如何使用 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. 是的--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 repo,您​​可以從您的私有 repos 進行安裝。

  1. 不確定python setup.py installpip install .[extras]應該足夠好?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM