簡體   English   中英

如果請求包的特定附加功能,則安裝依賴項的附加功能

[英]Install dependency’s extras if package’s specific extras is requested

我的項目有 Celery 作為依賴項。 這是一個硬依賴,即。 我的項目離不開它。 但是,它可以使用 Redis 作為后端,我的應用程序並不特別需要它。

我希望設置我的 package,這樣如果用戶使用poetry install -E redis安裝依賴項,它將安裝 Celery 的redis塊(就好像它在pyproject.toml中指定為celery = { version="^4.4.0", extras=["redis"] } )。

但是,如果用戶使用普通poetry install (沒有-E redis ),我不想安裝 Celery 的 Redis 依賴項(就好像它只指定為celery = "^4.4.0" )。

有沒有辦法將其放入 Poetry 配置中? 或者我應該跟蹤celery[redis]的可選要求並手動將它們添加到我的pyproject.toml文件中?

我已經檢查了有關此事的Poetry 文檔,但它沒有提供一種方法來指定具有不同選項的相同依賴項(在我的情況下為celery )。

這應該通過將redis定義為可選的 extra來工作,例如:

[tool.poetry]
name = "mypackage"
version = "0.1.0"
description = ""
authors = ["finswimmer <finswimmer@example.org>"]

[tool.poetry.dependencies]
python = "^3.6"
celery = "^4.4.7"
redis = { version = "^3.5.3", optional = true }

[tool.poetry.dev-dependencies]

[tool.poetry.extras]
redis = ["redis"]

[build-system]
requires = ["poetry>=1.0"]
build-backend = "poetry.masonry.api"

暫無
暫無

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

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