如何编写同时适配CPU与GPU平台的PyTorch requirements.txt
跨平台兼容GPU/非GPU的PyTorch依赖配置方案
不需要强制维护多份独立的requirements.txt文件,可以根据项目的使用场景选择对应配置方式,同时覆盖Linux GPU环境、CPU-only环境、Mac(Intel/Apple Silicon)环境。
你当前配置无法跨平台兼容的核心原因有两个:一是硬编码了+cu113的CUDA专属版本后缀,这类带后缀的安装包仅对应CUDA11.3的Linux/Windows环境,其他平台不存在对应构建包;二是写死了指向CUDA113资源的--find-links源,会引导pip优先查找仅适配CUDA环境的安装资源。
方案1:单文件通用配置(推荐,维护成本最低)
直接移除固定CUDA源的配置、去掉版本号后的CUDA后缀,修改后的requirements.txt内容如下:
torch==1.10.2 torchvision==0.11.3 pytorch-lightning==1.5.10
这个配置的适配逻辑完全由pip自动处理:
- 在搭载CUDA11.3的Linux/Windows GPU设备上,pip会自动优先拉取对应cu113版本的PyTorch,安装后可正常调用GPU
- 在无CUDA的x86架构设备上,会自动安装CPU版本的torch、torchvision
- 在Intel芯片Mac、Apple Silicon芯片Mac上,会自动匹配对应macOS平台的安装包,Apple Silicon设备安装后可原生支持MPS加速
如果遇到国内网络下载慢的问题,让用户自行配置全局PyPI镜像即可,不要在requirements文件中写死某一平台专属的下载源,避免干扰其他平台的包匹配逻辑。
方案2:分场景多文件配置(适合需要明确指引的开源项目)
如果需要给不同场景的用户提供更明确的安装指引、避免自动匹配可能出现的版本问题,可以采用「基础依赖+场景依赖」的拆分方式,维护成本也很低:
- 新建通用基础依赖文件
requirements.txt,存放所有跨平台通用的依赖:pytorch-lightning==1.5.10 - 新建GPU用户专属依赖文件
requirements-gpu.txt:--find-links https://download.pytorch.org/whl/cu113/torch_stable.html -r requirements.txt torch==1.10.2+cu113 torchvision==0.11.3+cu113 - 新建CPU/Mac用户专属依赖文件
requirements-cpu.txt:--find-links https://download.pytorch.org/whl/cpu/torch_stable.html -r requirements.txt torch==1.10.2+cpu torchvision==0.11.3+cpu
不同用户安装时对应执行命令即可:
- CUDA GPU用户执行:
pip install -r requirements-gpu.txt - Mac用户、无GPU的Linux/Windows用户执行:
pip install -r requirements-cpu.txt
注意:永远不要在通用依赖文件里写死带
+cuXXX、+cpu这类后缀的PyTorch版本号,这类后缀是PyTorch官方针对特定运行环境编译的专属包标记,跨环境安装会直接触发「找不到匹配版本」的报错。
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

