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

如何在Poetry的pyproject.toml中递归限制所有依赖使用numpy<2.0?

如何通过Poetry限制所有依赖(含传递依赖)使用numpy <2.0版本

要强制所有依赖(包括Prophet这类库的传递依赖)不使用numpy 2.0及以上版本,你需要用到Poetry的版本约束功能,而非仅指定顶层依赖版本。具体修改pyproject.toml的方法如下:

方法1:添加全局版本约束

在pyproject.toml中新增[tool.poetry.constraints]区块,明确限制numpy的版本范围:

[tool.poetry.constraints]
numpy = "<2.0"

如果你的项目本身直接依赖numpy,可以同时保留原有的顶层依赖指定(比如numpy = "1.26.4")——两者结合后,顶层依赖会固定为1.26.4,所有传递依赖则被强制限制在<2.0范围内。

方法2:仅限制传递依赖(项目不直接依赖numpy时)

如果你的项目本身不需要直接安装numpy,只是要阻止传递依赖引入numpy 2.0+,可以在[tool.poetry.dependencies]中添加带constraint = true的条目:

[tool.poetry.dependencies]
numpy = { version = "<2.0", constraint = true }

这种方式下,numpy不会被作为项目的顶层依赖安装,但会强制所有传递依赖遵守<2.0的版本限制。

生效步骤

修改完成后,执行以下操作确保约束生效:

  • 删除旧的poetry.lock文件(如果存在)
  • 运行poetry install重新生成符合约束的依赖锁文件
  • 可以用poetry show --tree检查依赖树,确认所有涉及numpy的条目版本都<2.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:32:41