如何在pyproject.toml中为Poetry正确配置main包的额外依赖?
Poetry中pyproject.toml分离包额外依赖的配置方案
问题描述
我是Poetry新手,想在pyproject.toml里分离名为main的包的额外依赖(比如main[extra1]、main[extra2]),让用户可以灵活选择安装哪些额外依赖,请问该怎么配置?
我的尝试
查了Poetry文档后,我尝试用依赖组做测试,配置如下:
[tool.poetry.dependencies] # 通用依赖 python = "3.10.8" main = "{version_number}" [tool.poetry.group.extra1.dependencies] main[extra1] = "{version_number}"
报错信息
执行poetry install --with extra1或poetry update --with extra1时,出现错误:
Expected '=' after a key in a key/value pair (at line 46, column 13)
解决方法
报错原因是TOML语法规则:当键名包含[]这类特殊字符时,必须用双引号把键包裹起来,否则解析器无法识别。
修正后的完整配置示例:
[tool.poetry.dependencies] python = "3.10.8" main = "{version_number}" # 分离extra1额外依赖 [tool.poetry.group.extra1.dependencies] "main[extra1]" = "{version_number}" # 分离extra2额外依赖 [tool.poetry.group.extra2.dependencies] "main[extra2]" = "{version_number}"
使用说明
- 安装仅包含通用依赖的版本:
poetry install - 安装包含extra1额外依赖的版本:
poetry install --with extra1 - 同时安装包含extra1和extra2的版本:
poetry install --with extra1,extra2
内容的提问来源于stack exchange,提问作者aweeb
相关产品推荐
相关产品推荐

