Anaconda 安装 PyTorch:环境、CUDA、镜像源与验证全流程

拾光
拾光
发布时间:2026-08-25| 157人浏览过
原创
PyTorch 安装前的版本与环境选择示意图,用暖色纸张卡片整理 Python 版本、独立环境和 Windows 工具链注意事项。
先定环境,再谈安装先把 Python 版本和独立环境定下来,后面的安装成功率会高很多。

前言

很多人装 PyTorch 时,真正卡住的不是那条安装命令,而是 Python 版本选错、CUDA 对不上,或者镜像源看似生效其实没有按预期工作。本文按“环境准备、GPU 判断、镜像配置、安装验证”的顺序拆开说明,帮你更快判断该装哪一版,以及问题究竟出在安装前还是运行后。

很多人看到 conda install pytorch torchvision torchaudio -c pytorch 就直接执行,结果往往不是装不上,就是装完后 torch.cuda.is_available() 仍然返回 False。问题通常不在 PyTorch 本身,而在环境版本、CUDA 选择、镜像源优先级,以及 conda 后台的依赖匹配。

这篇文章按实际安装顺序把关键点拆开:先确定 Python 版本,再判断是否适合安装 GPU 版,随后配置可用的镜像源,最后用一组命令验证结果。照着做,基本能避开大多数第一次安装时会踩的坑,也能更快判断问题到底出在哪一层。

创建环境前,先把 Python 版本选对

直接在现有环境里安装 PyTorch 并不稳妥,更推荐先创建独立的 conda 环境。这样做的好处很直接:出了问题更容易排查,也不会影响你机器上其他项目的依赖。

版本选择上,重点是别贪新,也别用过旧版本:

  • 不要优先用 python=3.12,因为它要到 PyTorch 2.3+ 才算稳定支持。
  • 也不要再用 python=3.7,这个分支已经停止最新维护。
  • 当前更稳妥的组合是 Python 3.10 或 3.11。

常见创建方式如下:

conda create -n pt23 python=3.10
conda create -n pt24 python=3.11

如果你准备安装 PyTorch 2.3,pt23 对应 python=3.10 是比较常见的做法;如果目标是 PyTorch 2.4,python=3.11 通常更合适。

Windows 用户还要额外注意一件事:尽量避免把 python=3.10 和 MinGW 编译器混在一起使用,相关兼容问题并不少见,优先选择 MSVC 工具链更省事。

环境创建完成后,不要只看到 conda activate 执行过就当作成功,最好立刻检查一次:

python --version

这一步很基础,但也是最常见的漏项之一。后面很多“明明装了却不生效”的问题,根源其实就是终端没有切到你以为的那个环境。

要不要装 GPU 版,先看这 3 个硬条件

并不是机器上有 NVIDIA 显卡,就一定适合安装 CUDA 版 PyTorch。是否能装、该装哪个版本,至少要先看三个指标。

1. 先用 nvidia-smi 看驱动支持范围

先运行:

nvidia-smi

右上角通常会显示类似 CUDA Version: 12.x 的字样。这里很多人会误解,以为这是自己应该安装的 CUDA 版本。实际上,它表示的是当前驱动支持的最高 CUDA 版本,不是你已经装好的运行时版本,更不是 PyTorch 一定要选的版本。

2. 以 PyTorch 官方安装页为准选择版本

真正的版本选择,应该去 PyTorch 正式安装页 交叉确认。先选你要安装的 PyTorch 版本,再选与之对应的 CUDA 版本,例如 cudatoolkit=11.8。不要直接照着 nvidia-smi 里的数字抄。

CUDA 版本判断与安装后验证的暖色专栏配图,用卡片和箭头说明驱动支持、官方页面选择、GPU 识别和常见误判。
CUDA 选择与验证重点GPU 版能不能用,关键看驱动支持、版本对应关系和运行时识别结果。

3. 老显卡和新显卡的安全范围并不一样

如果你的显卡是 GTX 10xx 系列或更老,cudatoolkit=11.3 往往是更稳妥的上限;如果是 RTX 30xx 或 40xx,通常更适合考虑 cudatoolkit=12.1 或 =12.4。

安装时最常见的一类报错是:

ImportError: libcudnn.so.8: cannot open shared object file

这类问题不一定说明 CUDA 版本选错,很多时候是 cudnn 没有随着 conda 依赖一起完整装好。也就是说,方向应该先放在依赖完整性,而不是急着重选一轮大版本。

清华镜像怎么配才有效

不少教程还在教人手动改 .condarc,删 -default、改成 http 协议,或者直接大段覆盖配置。现在这样做不但效果一般,还可能把 channel 优先级弄乱,导致 conda 仍然从默认源拉包。

更稳妥的做法,是直接追加 PyTorch 和 main 两个通道:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

这一步做完还不够,最好再明确打开严格优先级:

conda config --set channel_priority strict

如果不加这条,conda 解析依赖时仍可能从默认源取包,最后出现“看起来配了镜像,实际没走镜像”的情况。

配置完成后,用下面的命令检查是否生效:

conda config --show channels

输出结果里,pytorch channel 最好排在前面。只有顺序和优先级都对了,后面的安装结果才更可控。

如果镜像依然超时,也不要在配置文件里继续手工折腾。可以先临时清掉 channel 设置,再回到正式源重试:

conda config --remove-key channels

正式安装后,重点验证这几项

在环境准备好、版本判断完成后,再执行最稳妥的安装命令:

conda install pytorch torchvision torchaudio -c pytorch

这条命令本身没有问题,问题大多发生在命令执行前后的环境状态上。

安装完成后,第一层验证是确认能否正常导入:

import torch

但只要 import torch 成功,并不代表 GPU 就已经可用。更关键的是继续检查:

torch.version.cuda
torch.cuda.device_count()
torch.cuda.is_available()

如果 torch.version.cuda 返回空值,说明你装到的是 CPU 版,而不是 CUDA 版。若它有返回值,例如 '12.1',但 torch.cuda.device_count() 仍然是 0,那么问题通常出在运行时没有识别到 GPU。

这一类情况常见原因包括:

  • 当前终端没有激活正确环境,例如漏掉了 conda activate pt23。
  • Windows 上使用 WSL2,但 NVIDIA Container Toolkit 没有启用。
  • Linux 上当前用户没有加入 video 或 docker 组。

Linux 场景下,原文给出的常见处理命令是:

sudo usermod -aG video $USER

还有一个很容易被误用的检查项是:

nvcc --version

它只能说明本地是否安装了 CUDA toolkit,并不能直接证明 PyTorch 当前能否调用 CUDA。因为 PyTorch 经常使用的是 conda 环境里自己的 cudatoolkit 包,这和系统级的 nvcc 不是同一件事。

装好了还是不可用,优先排查依赖对齐

如果前面的步骤都看起来没错,conda list 里版本号也都“正常”,但 torch.cuda.is_available() 依然是 False,那么真正的问题往往在 ABI 兼容层,而不是某个单独包的主版本号。

这时候要重点关注 conda 在后台匹配的三类依赖:cudatoolkit、numpy、libgcc。它们表面上都能装上,但小版本不协调时,运行结果依旧可能异常。

遇到这种情况,先别急着删环境重装,也别反复切源。一个更直接的思路,是先把关键小版本固定住:

conda install python=3.10.12 numpy=1.24.4 -f

这条命令的意义,不是“降级一定更好”,而是先减少解释器和数值库的漂移范围,让 conda 的依赖求解结果更稳定。实际排错中,这通常比一遍遍换镜像、重复安装更有效。

如果你只想要一个最稳妥的安装路径,可以按这个顺序做:先创建 Python 3.10 或 3.11 的独立环境,再根据显卡和 PyTorch 版本选好 CUDA,之后配置镜像和严格优先级,最后用 torch.version.cuda 与 torch.cuda.is_available() 做双重验证。这样即使出问题,也能很快定位是在环境、依赖还是 GPU 识别这一层。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。