带大括号的Python开发依赖格式解析及安装方法咨询
Python依赖声明语法解析与安装方案
你遇到的这个依赖格式是**Poetry(Python包管理工具)**的原生依赖声明语法,通常出现在项目的pyproject.toml文件的[tool.poetry.dependencies]区块中,所以直接当作requirements.txt或environment.yml使用会触发格式错误。
语法含义解析
- 普通格式如
pytest = "^6.2.5":^是Poetry的版本范围符号,代表兼容语义化版本更新,即安装版本满足>=6.2.5且<7.0.0的pytest包。 - 带大括号的格式如
coverage = {extras = ["toml"], version = "^5.5"}:extras = ["toml"]:指定安装该包的拓展功能依赖,对应pip语法中的coverage[toml],表示要安装支持toml配置的coverage版本;version = "^5.5":同样是兼容版本范围,对应>=5.5.0且<6.0.0的coverage版本。
另一个例子xdoctest = {extras = ["colors"], version = "^0.15.5"}同理,是安装带colors拓展的xdoctest包。
安装方法
方法1:用Poetry原生安装(推荐)
- 先安装Poetry工具:
pip install poetry - 将这段依赖内容放到项目的
pyproject.toml文件中,确保位于[tool.poetry.dependencies]区块下(如果没有该文件,执行poetry init按提示生成,之后替换依赖部分即可); - 执行安装命令,Poetry会自动创建虚拟环境并完成所有依赖(包括拓展功能)的安装:
poetry install
方法2:转换成pip兼容的requirements.txt格式安装
把每个依赖转换成pip支持的语法,保存为requirements.txt:
pytest>=6.2.5,<7.0.0 coverage[toml]>=5.5.0,<6.0.0 safety>=1.10.3,<2.0.0 mypy>=0.910,<1.0.0 typeguard>=2.12.1,<3.0.0 xdoctest[colors]>=0.15.5,<0.16.0 Sphinx>=4.1.2,<5.0.0 sphinx-autobuild>=2021.3.14,<2022.0.0
然后执行pip安装命令:
pip install -r requirements.txt
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

