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

如何在requirements.txt单行声明PyTorch与CUDA的兼容版本(使用~=)

PyTorch与CUDA版本在requirements.txt中的兼容声明问题

你的写法是否正确?

不正确。

原因说明

pip的~=(兼容运算符)遵循PEP 440版本规范,仅会解析版本号中+符号之前的核心版本部分,+之后的本地版本标识符(比如PyTorch版本里的cu117)不会被~=处理。因此torch~=1.13+cu11实际等价于torch~=1.13,只会限制PyTorch为1.13.x系列,但完全无法约束CUDA版本,安装时可能匹配到带cu102、cu118等非目标CUDA版本的包,不符合你的需求。

正确用法与替代方案

没办法直接通过~=同时约束PyTorch 1.13.x和CUDA 11.x版本,因为PyTorch的CUDA版本绑定在本地标识符中,pip没有语法支持对这部分做模糊匹配。可行的替代方式:

  • 枚举符合条件的版本模式:在同一行用||(逻辑或)列出所有PyTorch 1.13.x系列中带CUDA 11.x后缀的版本规则,比如:
    torch~=1.13.0+cu111 || torch~=1.13.0+cu112 || torch~=1.13.0+cu113 || torch~=1.13.0+cu114 || torch~=1.13.0+cu115 || torch~=1.13.0+cu116 || torch~=1.13.0+cu117
    
    这种写法能精确匹配目标版本组合,但需要提前确认PyTorch 1.13.x支持的所有CUDA 11.x子版本。
  • 版本范围+注释提示:用torch>=1.13.0,<1.14.0约束PyTorch版本在1.13.x区间,然后在requirements.txt中加注释说明需要安装带CUDA 11.x后缀的包,示例:
    # 需安装PyTorch 1.13.x + CUDA 11.x版本
    torch>=1.13.0,<1.14.0
    
    这种方式仅做提示,不会强制约束CUDA版本,适合需要人工确认安装环境的场景。

能否在同一行声明两者的兼容版本?

无法通过单一的~=语法实现,但可以用上述的||枚举方式在同一行列出所有符合条件的版本规则,从而间接实现同时约束PyTorch和CUDA版本的目的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:34:59