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

如何在Poetry中安装无GPU依赖的torch==2.0.1(间接依赖场景)

解决间接依赖torch时仅安装CPU版本的问题

问题背景

  • 项目间接依赖torch==2.0.1,仅需在CPU环境运行
  • torch自带的cuda/cublas/cudnn等GPU相关组件占用了镜像中4.5GB空间(总镜像大小6.5GB)
  • 使用Poetry 1.8.2,运行环境为Linux 6.6.22-linuxkit x86_64
  • 曾尝试在Dockerfile中设置ARG CUDA_VISIBLE_DEVICES=""后执行poetry install,但该环境变量仅作用于运行时,无法改变安装过程
  • 已知直接依赖torch时可指定cpuonly版本,但当前torch为间接依赖,无法直接修改上游依赖声明

可行解决方案

1. 在pyproject.toml中覆盖间接依赖

Poetry允许通过显式声明torch来覆盖间接依赖的版本和包源,指定CPU专用的wheel包:

[tool.poetry.dependencies]
python = "^3.x"
# 保留你的其他直接依赖
torch = { version = "2.0.1", url = "<对应你Python版本的CPU版torch wheel地址>" }

根据你使用的Python版本(如cp39对应Python3.9、cp310对应Python3.10),找到PyTorch官方提供的Linux x86_64 CPU版本wheel包地址替换占位符,然后执行:

poetry lock --no-update
poetry install

2. 使用约束文件强制指定CPU版本

创建constraints.txt文件,内容如下:

torch==2.0.1+cpu

执行安装时指定该约束文件,Poetry会优先使用符合约束的CPU版本:

poetry install --constraint constraints.txt

这种方式无需修改pyproject.toml,适合临时场景或不想提交配置变更的情况。

3. Docker构建时预安装CPU版torch

在Dockerfile中先手动安装CPU版本的torch,再执行poetry install,让Poetry复用已安装的包,避免下载GPU版组件:

# 先安装CPU版torch,替换为对应Python版本的CPU包源
RUN pip install torch==2.0.1+cpu -f <PyTorch CPU包源地址>
# 执行poetry install,跳过已安装的torch
RUN poetry install --no-root --no-directory

4. 临时修改poetry.lock(不推荐)

直接在poetry.lock中找到torch的条目,将其url替换为CPU版本的wheel地址,然后执行:

poetry install --no-root

注意:这种修改会在下次执行poetry update时被覆盖,仅适合临时应急使用。

验证安装结果

安装完成后,运行以下代码确认torch为CPU版本:

import torch
print(torch.cuda.is_available())  # 输出应为False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:23:20