Python poetry,安装可选依赖项。

9
我只想要这个的诗歌版本:
$ pip install pydantic[email]

我已经阅读了所有相关的帖子。现在我的 pyproject.toml 看起来像这样(我也尝试了其他所有方法):

[tool.poetry.dependencies]
pydantic = {version = "*", optional = true, extras = ["email"]}
...

[tool.poetry.extras]
email = ["pydantic"]

我还删除了.venvpoetry.lock,然后运行了$ poetry install。但是无效。运行时错误很明显:

ImportError: email-validator is not installed, run `pip install pydantic[email]`

我可以补充一些细节: pydantic 本身是一个依赖项(在我遇到这个问题之前,它并不存在于 pyproject.toml 中)。

1
运行 poetry add 'pydantic[email]' 然后查看 pyproject.toml 的内容。 - sinoroc
是的,只需要 pydantic = {extras = ["email"], version = "^1.8.2"} 就可以了。而且它也能正常工作。看起来我之前手动尝试过这个方法 :) 。不再需要 [tool.poetry.extras] 部分了吗? - Alexey Orlov
如果你的项目(库或应用程序)本身有“_extras_”,那么与optional = true结合使用的[tool.poetry.extras]部分就会起作用。所以在你的情况下,你不需要它们。 - sinoroc
你能否创建一个答案,这样我就可以点击它了吗? - Alexey Orlov
是的,这不是重复的。你链接的帖子是关于提供额外服务的,而你的问题是关于使用它们的。 - Arne
1个回答

20
pyproject.toml中添加类似以下内容:
[tool.poetry.dependencies]
pydantic = {version = "*", extras = ["email"]}

然后运行:
poetry install

或者直接通过这个命令:
poetry add 'pydantic[email]'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接