You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pyproject.toml中忽略指定包的子依赖?

解决pyproject.toml中忽略特定包依赖的问题

如果你想引入一个依赖torch的包,但不想让包管理工具自动安装torch(毕竟它体积大,且你已有的版本兼容),可以根据你使用的包管理工具,用以下方式配置pyproject.toml:

用Poetry管理项目

快速添加目标包(不带依赖)

直接用--no-deps参数添加目标包,这样pyproject.toml里只会记录目标包,不会拉取它的依赖:

poetry add your-target-package --no-deps

如果已经加过目标包,手动删掉pyproject.toml里自动生成的torch依赖,再运行poetry lock --no-update更新锁文件即可。

确保协作安装时也不自动装torch

把torch设为可选依赖,这样默认安装不会拉取它,只有显式指定才会安装:

[tool.poetry.dependencies]
python = "^3.8"
your-target-package = "*"
torch = { version = ">=1.10", optional = true }

[tool.poetry.extras]
torch = ["torch"]

团队成员安装时直接运行poetry install就不会装torch,需要的话再用poetry install --with torch。

用标准PEP 621配置(pip/setuptools)

方法1:阻止torch自动安装

在[project.dependencies]里给torch加个永远不满足的环境标记,pip就会跳过它的安装:

[project.dependencies]
your-target-package = "*"
torch = { version = ">=1.10", markers = "sys_platform == 'nonexistent-platform'" }

这种方式简单直接,你的本地torch会被目标包正常调用。

方法2:约束依赖版本(需额外安装参数)

先创建一个constraints.txt文件:

torch>=1.10

再在pyproject.toml里声明目标包:

[project]
name = "your-project"
version = "0.1.0"
dependencies = ["your-target-package"]

安装时加上约束参数:

pip install . --constraint constraints.txt --no-deps your-target-package

不过这种方式需要安装时额外传参,不如方法1省心。

注意:无论用哪种方式,都要确保你本地的torch版本和目标包的要求兼容,最好在项目文档里说明需要预先安装符合版本要求的torch。

内容的提问来源于stack exchange,提问作者Richie Bendall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:22:44