簡體   English   中英

如何將隱式依賴添加到 Python Poetry 中的依賴?

[英]How can I add implicit dependencies to a dependency in Python Poetry?

我的項目依賴於我不維護的 package:PackageA。 PackageA 依賴於 PackageB 但未在其 setup.py 文件中明確指定 PackageB 作為依賴項。

理想情況下,PackageA 維護者會明確地將 PackageB 添加為依賴項,但我無法控制它。

我可以簡單地poetry add PackageB到我的項目中,但是當我真的只想依賴 PackageA 時,我會依賴 PackageB。

我試圖手動修改 poetry.lock 文件中 PackageA 的[package.dependencies]以添加PackageB = *但 Poetry 開始抱怨。 這似乎也有點像 hack,因為依賴關系仍然沒有在 pyproject 文件中的任何地方建模。

有沒有一種方法可以告訴 Poetry 我想依賴 PackageA 但 PackageA 也依賴於 PackageB?

對我來說這似乎是一些額外的工作,但我想你可以做

[tool.poetry.group.packageA]
optional = true

[tool.poetry.group.packageA.dependencies]
packageA = "^1.3.4"
packageB = "^1.2.3"

然后用poetry install --with packageA

或者刪除我像假人一樣留下的optional=true標志,它會像你期望的那樣工作:PI 認為(感謝@Nathan)

或者你可以將它添加到extras部分

[tool.poetry.extras]
packageA = ["packageA","packageB"]

並使用poetry install -E packageA

但如果是我,我會把它添加到我的主要依賴項中

暫無
暫無

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

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