CentOS 上获取与使用 PyTorch 的推荐路径
一 获取途径概览
- pip 二进制安装(优先):直接安装官方预编译包,适合大多数 CPU 与 NVIDIA GPU(CUDA) 场景,命令简洁、维护成本低。
- 源码/官方渠道下载 whl 安装:当 pip 直装失败或需要特定小版本时,从官方渠道下载对应 .whl 后安装,可控性更强。
- 容器化交付:使用 Docker/Kubernetes 镜像打包 PyTorch 与依赖,便于复现与迁移,适合上线与团队协作。
- 源码编译:面向需要自定义、插桩或特定平台适配的场景(如 aarch64、插件开发),在 CentOS 上也可完成编译安装。
二 快速安装步骤(pip 二进制)
- 准备环境
- 更新系统并安装基础工具:
sudo yum update -y && sudo yum install -y python3 python3-pip python3-devel
- 建议使用虚拟环境(venv 或 conda)隔离依赖
- CPU 版本
pip install torch torchvision torchaudio
- GPU(CUDA)版本
- 先确认驱动与 CUDA:
nvidia-smi(查看 CUDA Version)
- 按 CUDA 版本选择索引安装,例如 CUDA 11.7:
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
- 验证
python - <<'PY' import torch, sys print("torch:", torch.__version__, "cuda:", torch.cuda.is_available()) PY
- 若输出
cuda: True 表示 GPU 可用。
三 备选安装方式
- 官方 whl 下载安装
- 当直装报错或需锁定小版本时,前往 PyTorch 官方 whl 页面下载匹配系统的 .whl(如
cu117/torch_stable.html),然后:
pip install torch-<version>+<cuda>.whl
- 源码编译(CentOS 支持)
- 安装系统依赖与编译工具(示例):
sudo yum install -y patch libjpeg-turbo-devel dos2unix openblas git gcc cmake
- 版本要求:gcc ≥ 7.3.0、cmake ≥ 3.12.0;若安装 1.11.0,建议 gcc ≥ 7.5.0
- 获取源码并构建:
git clone -b v1.8.1 https://github.com/pytorch/pytorch.git --depth=1
cd pytorch && git submodule sync && git submodule update --init --recursive
- 可选:
export USE_XNNPACK=0
python3 setup.py install
- 编译完成后安装匹配的 torchvision(示例:PyTorch 1.8.1 → torchvision 0.9.1)
- 容器化交付
- 使用官方或自建 Docker 镜像封装 PyTorch 与依赖,上线、迁移与复现实验更便捷(适合团队与竞赛交付)。
四 版本选择与系统适配要点
- glibc 与 CPU 架构:选择与系统 glibc 兼容的二进制包;在 CentOS 7/8 常见为 x86_64,部分场景会遇到 aarch64 需求(可源码编译)。
- CUDA 与驱动匹配:
nvidia-smi 显示的 CUDA Version 是驱动支持的上限,安装 PyTorch 的 CUDA 版本应不高于该值;驱动过旧需先升级。
- Python 版本匹配:确保 Python 主版本与 whl 的 cp 标签一致(如 cp37/cp38/cp39),否则会报平台不兼容。
- 虚拟环境隔离:强烈建议使用 venv/conda 管理依赖,避免与系统 Python 冲突。
- 国内网络加速:如遇下载慢,可使用可信的 PyPI 镜像源或下载 whl 后离线安装。
五 常见问题与排查
- pip 安装时报平台不兼容:核对 Python 版本、**系统架构(x86_64/aarch64)**与 CUDA 标签是否一致;必要时改用官方 whl 或源码编译。
- GPU 不可用:运行
nvidia-smi 与 torch.cuda.is_available() 双验证;检查驱动、CUDA 版本匹配与容器是否启用 NVIDIA Runtime。
- 缺少系统依赖导致编译失败:按官方/编译指南补齐 gcc、cmake、openblas 等依赖;特定版本(如 1.11.0)对 gcc 有更高要求。
- 多版本并存冲突:使用 venv/conda 隔离环境,或在虚拟环境中固定
pip 与 torch 版本。