在 Ubuntu 24.04 LTS 上安装 PyTorch,最稳妥、最符合“生产环境”或“严肃开发”逻辑的方式,依然是通过 Conda (Miniconda/Anaconda) 或者 Python venv + pip 配合 NVIDIA 官方推荐的 CUDA 版本进行安装。
这里有一个核心前提你必须先确认:你的机器是否有 NVIDIA GPU?
- 有 GPU:必须装 CUDA 版本的 PyTorch,否则无法利用硬件提速,训练速度会慢几个数量级。
- 无 GPU / CPU Only:直接装 CPU 版本即可,但通常深度学习场景下我们默认指 GPU 版。
以下我分两种主流场景给你方案,按推荐程度排序。
方案一:使用 Conda 安装(推荐,依赖管理最省心)
Ubuntu 24.04 默认的 Python 是 3.12,虽然新,但某些老旧的深度学习库兼容性可能还没完全跟上。Conda 能帮你隔离环境,避免污染系统级 Python。
1. 前置检查:驱动和 CUDA Toolkit
PyTorch 的安装包里已经包含了特定版本的 CUDA Runtime(如 cudatoolkit=11.8 或 12.1),你不需要手动去 NVIDIA 官网下载并安装完整的 CUDA Toolkit(除非你要用 nvcc 编译 C++ 扩展)。
但是,你需要确保:
- NVIDIA 驱动已正确安装。
nvidia-smi如果能看到显卡信息和驱动版本,说明驱动没问题。Ubuntu 24.04 通常自带了较新的开源驱动,如果
nvidia-smi报错,请先通过ubuntu-drivers autoinstall或从 NVIDIA 官网下载.run文件修复驱动。 - 确认 CUDA 版本兼容性。
查看nvidia-smi输出右上角的CUDA Version: XX.X。这表示驱动支持的最高 CUDA 版本。PyTorch 要求的 CUDA 版本必须 小于或等于 这个值。
2. 创建环境并安装
# 创建名为 pytorch_env 的环境,指定 Python 3.10 或 3.11(更稳定)
conda create -n pytorch_env python=3.10
conda activate pytorch_env
# 【关键】访问 PyTorch 官网获取最新命令
# https://pytorch.org/get-started/locally/
# 目前 (2024年中后期) 主流推荐是 CUDA 11.8 或 12.1
# 如果是 CUDA 11.8:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
# 如果是 CUDA 12.1 (更新):
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
注意:
-c nvidia这一步很重要,因为 PyTorch 的 CUDA 依赖现在由 NVIDIA 频道托管,不加可能会下载不到正确的二进制文件。
方案二:使用 pip + venv(轻量级,适合容器化或不想装 Conda)
如果你不喜欢 Conda 占用大量磁盘空间,或者是在 Docker 容器中部署,用原生 Python 虚拟环境更好。
1. 安装系统依赖
Ubuntu 24.04 需要一些基础库来编译可能的 C++ 扩展(如 torchvision 中的某些功能):
sudo apt update
sudo apt install python3-pip python3-dev libgl1-mesa-glx libglib2.0-0
2. 创建虚拟环境
python3 -m venv my_pytorch_env
source my_pytorch_env/bin/activate
pip install --upgrade pip
3. 安装 PyTorch
同样,先去 pytorch.org 复制命令。以 CUDA 12.1 为例:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
验证安装是否成功(必做!)
不管用哪种方式,安装完后务必运行以下代码验证 GPU 是否被识别:
import torch
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"Current device: {torch.cuda.get_device_name(0)}")
print(f"CUDA version used by PyTorch: {torch.version.cuda}")
else:
print("WARNING: No GPU detected! You are running on CPU.")
常见坑点排查:
-
torch.cuda.is_available()返回 False:- 检查
nvidia-smi是否正常。 - 检查你是否安装了 CPU 版本的 PyTorch(看 pip list 里的包名是否包含
cu118或cu121字样)。 - 检查环境变量
LD_LIBRARY_PATH是否被错误地修改,导致冲突(通常 Conda 会自动处理,pip 方式有时需要手动 export)。
- 检查
-
ImportError: libcuda.so.1: cannot open shared object file:- 这是驱动库路径问题。尝试:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH # 或者根据实际驱动路径调整 - 永久解决:将上述 export 加到
~/.bashrc中。
- 这是驱动库路径问题。尝试:
-
Ubuntu 24.04 特有的 Python 3.12 兼容性问题:
- PyTorch 官方对 Python 3.12 的支持正在逐步完善。如果遇到奇怪的编译错误或导入失败,强烈建议降级到 Python 3.10 或 3.11。深度学习领域,“稳定”比“最新”重要得多。
进阶:性能优化与注意事项
-
不要混用 conda 和 pip 安装同一个包的依赖:
尽量全用 conda 安装,或者全用 pip。如果必须混用,先装 conda,再装 pip。 -
启用 cuDNN 提速:
PyTorch 默认会使用 cuDNN。确保你的 NVIDIA 驱动支持对应的 cuDNN 版本。通常 Conda 安装会自动带上匹配的 cuDNN。 -
多用户服务器上的权限问题:
如果你在实验室集群上,不要用sudo pip install。永远使用--user参数或在个人目录下创建 venv/conda 环境。 -
关于 WSL2 (Windows Subsystem for Linux):
如果你是在 Windows 上用 WSL2 跑 Ubuntu 24.04,请确保安装了 WSLg 和最新的 NVIDIA WSL Driver。WSL2 对 CUDA 的支持已经很好,但首次配置容易踩坑,建议参考 NVIDIA 官方文档。 -
版本锁定:
在生产环境中,建议在requirements.txt中固定 PyTorch 和 CUDA 的版本号,例如:torch==2.3.1+cu121 torchvision==0.18.1+cu121 torchaudio==2.3.1+cu121这样能保证不同机器间行为一致。
总结:先查驱动,再选 CUDA 版本,最后用 Conda 或 pip 安装。 别折腾源码编译,除非你有特殊需求且时间充裕。对于大多数开发者,官方预编译的二进制包足够快且稳定。
云技术博客