Anaconda + PyTorch 环境配置全攻略:从 CUDA 选型到镜像源加速 📅 发布时间:2026/9/12 3:23:24 👁 浏览次数: 每次看到群里有人问 torch 装不上我大概能猜到下一秒会踩进哪个坑。不是下载慢到怀疑人生就是装完之后import torch直接红字报错更有意思的是明明照着某篇一年前的教程一步步来最后发现连 Python 版本都对不上。这些年我帮同事、帮朋友、也帮自己反反复复配过不少机器上的 Anaconda torch 环境从 Windows 笔记本到 Linux 服务器都折腾过慢慢摸索出了一套不那么容易翻车的流程。这篇文章我以 Windows 为主线把 torch 环境配置的全过程拆开讲清楚包括为什么用 Anaconda、怎么装、镜像源怎么配、GPU 版本怎么选、常见报错怎么排查顺带也会把 Linux 下的差异点单独拎出来说。标题里那句“其实 Linux 好像也行”说得太含蓄了准确讲是命令基本通用差别也就两三个地方。适合刚接触深度学习、第一次装 torch 的同学也适合装了好几次总在同一个地方卡住的人。1. 环境准备与方案选择为什么 Anaconda 是绕不开的一环1.1 一个看似简单的活为什么翻车率这么高很多人第一次接触 torch以为就是个pip install torch的事。确实单看这一条命令很简单但实际跑起来会发现torch 这个包不像 requests 那样装完就能用。它牵扯三个变量Python 版本、CUDA 版本、包管理器本身的环境逻辑。三者只要有一个对不上后面全是坑。举几个非常现实的例子。官方新版 torch 的安装命令往往要求 Python 3.9 以上但有些服务器上自带的是 3.6那就得先折腾 Python你的显卡驱动能支持 CUDA 12.1但装错成 cu118 的轮子程序也能跑只是 GPU 用不上还有更常见的你把 conda 环境和系统 Python 混在一起用装完发现pip指向的是另一个 Python那一刻真的很崩溃。所以配置 torch 环境的第一步不是急着装包而是先解决“环境管理”这件事。Python 的虚拟环境工具不少但 Anaconda 在最开始的学习和工程阶段优势确实明显自带 Python、自带 pip、还能通过 conda 命令创建独立环境。你不需要先装一个系统级 Python也不用担心把系统自带的 Python 搞坏所有东西都隔离在一个目录里不满意了直接删。1.2 conda、pip、Python 到底是什么关系这三者的关系很多新手容易搞混。我打个比方Python 就像一个操作系统但它不像 Windows 一样装软件那么容易需要有个“软件商店”。conda 和 pip 都是软件商店负责下载和安装 Python 相关的库。不同之处在于conda 不仅能装 Python 库还能装非 Python 的依赖比如某些底层 C 库pip 则更专注于 Python 包本身。而 Anaconda 是 conda 的一个发行版相当于把一个干净的 conda 加上几百个常用库打包一起发给你。在实际配置 torch 的过程中我的习惯是环境用 conda 创建torch 本身用 pip 安装。为什么因为 conda 默认源里的 pytorch 往往不是最新版而且经常出现依赖解析特别慢、版本不匹配的问题。PyPIPython 的官方包仓库上的 torch 轮子类型更齐全Windows、Linux、CPU 版、CUDA 版都有选起来更直观。后面我会详细讲怎么精准地选轮子。1.3 CPU 版还是 GPU 版第一步先想清楚这是很多人装完才后悔的地方。torch 分为 CPU 版和 GPU 版CPU 版是纯用 CPU 计算GPU 版会调用 NVIDIA 显卡加速。如果你的电脑没有 NVIDIA 独立显卡或者只有 AMD 显卡那就只能装 CPU 版。带 NVIDIA 显卡的话即便只是入门我也建议直接上 GPU 版后续跑模型速度完全不是一个量级。怎么确认自己有没有 NVIDIA 显卡Windows 下打开任务管理器点“性能”标签页如果左侧有“GPU 0”或者“GPU 1”看标识是不是 NVIDIA。更准确的办法是打开命令行输入nvidia-smi能输出一堆信息就说明有 NVIDIA 驱动右上角还会显示驱动的 CUDA 版本号。这一步记下来后面选 torch 版本用得上。提示nvidia-smi 显示的是驱动支持的 CUDA 最高版本不是你系统里装的 CUDA 版本。这一点后面会在 GPU 版本选择部分详细解释。2. Windows 下安装 Anaconda 与镜像源配置2.1 Anaconda 下载与安装细节Anaconda 下载地址这里不展开说太多官网直接下最新版即可。如果官网速度慢用清华镜像源的 anaconda 目录也能下载找对应系统的安装包就行。这里我想强调几个安装时的细节都是踩过坑之后的经验。第一安装路径务必避开 C:\Program Files 这类带空格的目录也不要出现中文路径。建议直接装到 C:\anaconda3 或者 D:\anaconda3反正就是一个纯英文、无空格的路径。原因很简单后续很多命令行工具在带空格的路径下表现不稳定尤其是一些老的 C 库编译时路径处理不好就报错。第二安装过程中有一个选项叫 “Add Anaconda3 to my PATH environment variable”默认是不勾选的。我的建议是懂命令行的人可以不勾用 Anaconda Prompt 或者手动加路径新手可以勾上省得之后出现“conda 不是内部或外部命令”的问题。不过勾选之前最好确认系统里没有装过其他 Python否则 PATH 环境变量里 Python 和 conda 的 python.exe 可能冲突命令行里输python的时候到底调用哪个就说不清了。第三装完之后验证一下。打开命令行输入conda --version python -V能正常输出版本号说明安装成功。如果提示“conda 不是内部或外部命令”多半是 PATH 没配置好。这时候手动把这三个路径加到环境变量里C:\anaconda3 C:\anaconda3\Scripts C:\anaconda3\Library\bin如果用了 Anaconda Prompt 就没有这个烦恼它启动时会自动加载 conda 环境。2.2 清华镜像源配置治下载慢和下载失败Anaconda 默认使用国外服务器在国内网络环境下速度非常感人经常跑着跑着超时报错。解决办法就是配国内镜像源。开源软件社区里清华、中科大、阿里都有 Anaconda 的镜像站我习惯用清华源稳定性整体不错。配置方式是在命令行执行以下命令conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes执行完可以用下面命令确认conda config --show channels这里要提醒一点conda 的镜像源只对 conda 安装的包生效。我们后面用 pip 安装 torch走的是 pip 的源所以还需要单独给 pip 配镜像。命令是pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple配置完成后再用 pip 安装任何包都会自动走清华的 PyPI 镜像下载速度会快很多。如果不想全局改配置也可以在单条命令里加参数-i https://pypi.tuna.tsinghua.edu.cn/simple两条路都行看个人习惯。2.3 两个源要分开理解conda 源和 pip 源别混这里多提一句conda 源和 pip 源是两套独立的体系。conda 源的地址是 .../anaconda/pkgs/...pip 源的地址是 .../simple 或者 /pypi/simple。很多人配完 conda 源后发现 pip 下载还是很慢就是这个原因他们以为“改了 conda 的源就等于改了所有下载源”其实并不是。另外不要一次性把 conda 的多个源乱加只保留清华源就够了。源配多了反而会出现 “CondaHTTPError: 404” 这种情况因为各个源同步的包版本可能不完全一样。相信大多数人和我一样碰到问题第一反应都是换个源试试但实际上源越多越乱精简才是关键。3. 创建虚拟环境并安装 Torch3.1 创建独立环境别把东西都往 base 里塞Anaconda 装完默认有一个 base 环境很多人图省事直接在里面装 torch。我不建议这么做因为 base 环境被 conda 自己管着乱七八糟装多了容易把依赖搞乱而且不同项目可能需要不同版本的 torch全堆在一起必翻车。正确做法是创建一个专门的环境。我起名一般叫 torch你也可以叫 pytorchconda create -n torch python3.10创建过程中会让你确认安装输入 y 回车。这里指定了 Python 3.10理由是 PyTorch 对 3.10 的兼容性最好而且很多深度学习库也已经适配到了这个版本。如果选 3.12 或更新的版本目前虽然也能装但个别依赖库可能还没有对应的轮子遇到问题也不难解决只是没必要给自己添堵。创建完成后激活环境conda activate torch激活成功后命令行前面会多一个(torch)前缀。此时再进行任何操作都只影响 torch 这个环境不会污染 base。这是整个流程最重要的一步隔离好了后面随便折腾。验证 Python 版本和 pip 是否正常python -V pip -V3.2 NVIDIA GPU 环境检查与 torch 版本选择装 GPU 版之前先确认驱动信息。命令行里输入nvidia-smi输出内容的第一行顶部有 “Driver Version” 和 “CUDA Version”。比如显示 CUDA Version: 12.4说明你的驱动最高支持 CUDA 12.4那么装 cu121 或者 cu124 版本的 torch 轮子都可以只要不超过驱动支持的版本上限就行。再强调一次这个容易误解的点nvidia-smi里显示的 CUDA Version 是驱动兼容的最高版本不是必须手动安装 CUDA Toolkit 的版本。PyTorch 官方发布的轮子会自带 CUDA 运行时库你不需要单独安装完整的 CUDA Toolkit只要显卡驱动够新就能跑。所以“装 torch 之前需要先装 CUDA”这个说法在大多数情况下是不准确的。对应关系可以参照这张表显卡驱动支持的 CUDA 版本可选 torch 轮子CUDA 11.xcu117 / cu118CUDA 12.0 及以上cu121 / cu124无 NVIDIA 显卡cpu如果你不确定自己的驱动版本就直接装 cu118 或者 cu121兼容性比较广。老一点的显卡如果跑不起来再换更低版本的轮子重装。3.3 安装 Torch 的完整命令CPU 版和 GPU 版分开写激活环境之后确定自己的版本类型然后执行安装命令。CPU 版命令pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpuGPU 版以 CUDA 12.1 为例命令pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121这里用到了 PyTorch 官方的 wheel 站地址是 download.pytorch.org/whl这个站点上集中存放着所有平台、所有 CUDA 版本的 torch 轮子也就是很多人问的“哪里可以下载 torch 轮子”的标准答案。如果你想手动找某个特定版本也可以直接访问这个站点的索引页面。如果不想走官方站直接用刚才配好的清华 PyPI 镜像也能装pip install torch torchvision torchaudio这种方式装的是 PyPI 上的默认版本通常包含 CUDA 运行时支持但版本选择上不如官方 wheel 站那么精确。所以我的习惯是明确要 GPU 版时用官方站指定的--index-url明确要 CPU 版时也用官方站的 cpu 标识只有网络实在不争气的时候才用镜像源。为什么 torch 安装要用 pip 而不是 conda install前面说过conda 默认 channel 里 pytorch 的版本滞后而且安装过程中可能为了解决依赖问题跑很久。pip 安装明显更快而且 torch 官方对 pip 轮子的测试比 conda 的更多遇到问题也更好排查。实际使用中我用 conda install pytorch 的成功率远低于 pip 安装。3.4 验证安装是否成功装完之后最重要的一步是验证。别急着关终端先执行python进入 Python 交互环境后输入import torch print(torch.__version__) print(torch.cuda.is_available())如果第一行正常输出版本号说明 torch 装好了第二行如果是 True说明 CUDA 调用成功。想确认显卡名字可以再加一行print(torch.cuda.get_device_name(0))能看到类似 “NVIDIA GeForce RTX 3060” 这样的输出就说明你的 torch 环境真正用上了 GPU。如果torch.cuda.is_available()返回 False别紧张先别急着重装先去看第 5 部分的排查清单多半是驱动版本或者 torch 轮子版本的问题。4. Linux 下配置的关键差异其实真的一样4.1 Linux 安装 Anaconda一条脚本解决标题里写“其实 Linux 好像也行”这句话太保守了。实际体验下来Linux 下配置 torch 往往比 Windows 还顺畅。很多生产环境和服务器都是 Linux基本上照着下面的流程走一遍就能搞定。下载 Anaconda 的 Linux 安装包官方文件是 .sh 格式然后执行bash Anaconda3-*.sh安装过程中按照提示操作最后会让你确认是否执行conda init这一步建议同意它会自动把 conda 加进 shell 配置。安装完之后再执行source ~/.bashrc然后验证 conda 是否可用conda --version如果提示找不到命令多半是你的 shell 配置文件不是 .bashrc 而是 .zshrc执行conda init zsh再重新加载一次就好。之后的命令基本和 Windows 下完全一致conda create -n torch python3.10 conda activate torch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu1214.2 Linux 和 Windows 的几个小差异第一个差异是激活环境的方式。Windows 下用conda activate的前提是已经执行过conda initLinux 下如果执行过 conda init通常直接就能用。如果遇到 “conda activate 未找到” 的报错执行source ~/.bashrc即可。第二个差异是 nvidia-smi 的可用性。Linux 服务器上需要安装 NVIDIA 驱动才能输出显卡信息这一点和 Windows 不同。Windows 装驱动相对简单Linux 有时候会因为驱动和内核版本不匹配导致 nvidia-smi 无法运行这种情况往往要装对应版本的驱动属于另一个话题了这里不展开。第三个差异是 CUDA 运行时。Linux 下的 torch 轮子同样自带 CUDA 运行时不需要额外装 CUDA Toolkit。区别在于 Windows 对驱动版本更“宽容”Linux 有时候会因为驱动太老跑不起来 GPU 版本排查时优先看驱动版本。4.3 顺便聊一句 WSL也算 Linux 的一种如果你不想装完整的 Linux 环境Windows 自带的 WSL 也能跑 torch。WSL 2 里安装 Anaconda 的流程和 Linux 一致而且支持 NVIDIA GPU 调用很多人在 Windows 上装好 WSL 后直接在子系统里跑深度学习体验相当不错。通过nvidia-smi在 WSL 里能直接看到 Windows 驱动的版本这一点设计得很贴心。当然WSL 也有自己的一些怪癖比如文件系统性能问题、挂载路径问题等这些和 torch 环境配置本身关系不大就不展开了。如果你只是想在 Windows 上快速跑通 torch原生 Windows 方案完全够用WSL 属于“加分项”而非必选项。5. 常见问题与排查技巧实录5.1 conda 或者 pip 下载太慢、经常超时这是最普遍的问题。conda 慢就检查.condarc文件里的 channel 配置确保只有清华源或者你想用的镜像源pip 慢就检查 pip 的 index-url 配置。超时的话还可以给 pip 加长超时时间pip install torch --timeout 120某些情况下镜像源本身也慢尤其是晚上高峰时段那就换个时段再装或者从官方 wheel 站手动下载 wheel 文件再本地安装。方法是在浏览器先访问 wheel 索引页找到对应文件下载后用 pip 指定文件路径安装pip install torch-2.1.0cu121-cp310-cp310-win_amd64.whl手动装虽然麻烦但遇到网络极度不稳定的时候是最靠谱的办法。5.2 import torch 报错找不到指定模块或 DLL 加载失败Windows 上比较常见的问题是ImportError: DLL load failed。原因主要有两个一是缺 Visual C Redistributable 运行库去微软官网下载最新的 vc_redist.x64.exe 装了重启二是 torch、torchvision、torchaudio 版本不对齐比如 torch 是 2.0.0 但 torchvision 是 0.15.1 的情况一般没问题但如果一个用 cu118 一个用 cu121就有可能出现 DLL 冲突。这时候把三个包全卸载重装保证来自同一个 index-urlpip uninstall torch torchvision torchaudio然后再重新运行安装命令。5.3 torch.cuda.is_available() 为 False这是 GPU 用户最常见的困惑。网上太多人一看到 False 就重装白白折腾。排查顺序应该是先跑nvidia-smi看驱动是否能正常工作如果驱动能显示但 torch 检测不到大概率是 torch 的 CUDA 版本高于驱动支持的版本。比如驱动只支持 CUDA 11.x你装了 cu121 的轮子那 torch 自然无法调用 GPU。解决办法是卸载重装一个更低的版本比如 cu118。如果 nvidia-smi 本身提示找不到驱动那就不是 torch 的问题先解决驱动再说。还有一种容易忽略的情况你确实在 GPU 版 torch 下运行但代码里没指定设备模型默认就跑到 CPU 上去了。这种情况下torch.cuda.is_available()其实是 True只是你没用对 API 而已建议打印以下信息确认print(torch.cuda.is_available()) print(torch.device(cuda if torch.cuda.is_available() else cpu))5.4 conda activate 在 PowerShell 或者 CMD 里失效常见报错是 “系统找不到指定的路径” 或者 “activate 不是内部或外部命令”。核心原因是 conda 没有在 terminal 里初始化。执行一次conda init powershell或者conda init cmd.exe初始化后关闭当前终端重新打开一个新的终端窗口再试。这里要注意新开的窗口才有效因为初始化本质上就是往配置脚本里写代码旧的 shell 环境不会自动加载新的配置。5.5 找不到符合要求的 torch 版本Could not find a version that satisfies the requirement torch多半是 Python 版本太新或者太老。PyTorch 每个版本发布时只支持固定的 Python 版本范围比如老版本 torch 1.x 不支持 Python 3.10。解决方案有两种一是把环境里的 Python 换成 torch 支持的版本比如 3.8 或者 3.10二是指定一个较新的 torch 版本。个人更推荐第一种毕竟环境是 conda 管理的重来成本很低。检查当前环境 Python 版本和 torch 是否匹配最快的方式是查看 PyTorch 官网的安装页那里会列出每个版本支持的 Python 范围一目了然。5.6 环境装乱了一招回到初始状态环境这东西往往越折腾越乱。如果你已经在一台机器上反复装了各种版本或者找不到问题根源最快的方法是直接删掉环境重建conda deactivate conda remove -n torch --all然后重新创建环境重新安装。表面看是重复劳动实际比在乱糟糟的环境里找问题要快得多。我自己的习惯是一个环境最多修两次修不好就删不心疼。配置好的 conda 命令记到笔记里重建环境也就几分钟的事情。最后说点实在的配置 torch 环境这个事第一次折腾可能会花掉一个下午但只要搞清楚里面的逻辑之后再换机器、换系统都是顺手的事。我个人这两年最深的体会是环境配置最怕的不是报错而是“不知道自己在装什么”。当你理解了 conda 管环境、pip 管包、PyTorch 自带 CUDA 依赖这些基本概念之后很多报错甚至不用搜自己就能推导出原因。最后再分享一个小技巧装完环境之后把你的 conda 和 pip 配置备份一下。Windows 下是.condarc文件和 pip 的pip.iniLinux 下是~/.condarc和~/.config/pip/pip.conf。换电脑或者帮别人装的时候直接复制过去省去重新记镜像站地址的麻烦。祝所有被环境配置折磨的人一次成功。