针对pyproject.toml,等效于pip install -r requirements-dev.txt的命令是什么?
回答
可以的,pip提供了对应的命令来实现这一需求,核心是利用可选依赖组的指定语法加上--no-deps参数。
前提示例
假设你的pyproject.toml中定义了名为dev的开发依赖组,格式如下:
[project.optional-dependencies] dev = [ "pytest>=7.0", "black>=23.0", "flake8>=6.0" ]
具体命令
- 本地项目目录下安装
直接在项目根目录执行以下命令,只会安装dev组内的依赖,不会安装主项目及其依赖:
pip install ".[dev]" --no-deps
- 从PyPI安装第三方包的开发依赖
如果目标包已发布到PyPI,执行以下命令即可仅安装其dev可选依赖组:
pip install "package-name[dev]" --no-deps
关键参数说明
.[dev]/package-name[dev]:指定要安装的可选依赖组,其中dev是你在pyproject.toml中定义的组名,可根据实际配置替换。--no-deps:强制pip跳过主项目本身以及主项目的所有依赖,仅安装指定可选组内的包。
额外注意
- 建议使用pip 21.0及以上版本,较旧版本可能对
pyproject.toml的可选依赖支持不完善。 - 若存在嵌套的子依赖组(比如
dev包含lint和test子组),可以用.[dev,lint]这种格式同时指定多个组,搭配--no-deps依然只会安装这些组内的依赖。
内容的提问来源于stack exchange,提问作者Hyperplane
相关产品推荐
相关产品推荐

