Anaconda安装PyTorch全攻略:Windows环境配置与GPU加速实战 1. 为什么一定要用Anaconda来装PyTorch先聊点实在的。很多刚开始接触深度学习的朋友会在某个深夜打开PyTorch官网看到一行pip install torch torchvision torchaudio复制粘贴回车然后就陷入了漫长的等待和报错循环。等装完了才发现几个问题Python环境里一堆包版本冲突、GPU版本根本没用上、卸载的时候又不敢乱动。这些我都经历过而且不止一次。Win10系统在深度学习环境配置这件事上本身就要比Linux麻烦一些。Linux用户一条conda命令干干净净Windows下面光是路径、环境变量、CUDA驱动版本这些就能绕晕不少人。所以我的结论一直很明确在Windows上装PyTorch老老实实走Anaconda这条路是最不容易出错、也最适合新手的方案。Anaconda在这里扮演的角色说白了就是一个环境管家。它帮你隔离出独立的Python运行空间避免你在系统Python里安装各种包时互相污染、版本打架。PyTorch这个框架跟普通的Python库不太一样它对底层依赖比如CUDA、cuDNN、numpy版本非常敏感A项目要用PyTorch 1.xB项目要用2.x如果全装在一个环境里迟早会出事。而Anaconda的conda虚拟环境机制就是专门解决这个问题的。换句话说Anaconda本身不负责干活它的职责是给你整出一间干净、独立、不会乱套的实验室。这篇博文我在自己的笔记本上完整走了一遍流程系统是Win10 22H2显卡是一块老将级别的GTX 1660 TiPytorch安装版本是当前的稳定版。你只要跟着走基本不会掉坑。2. 安装前的关键准备Anaconda、Python版本和显卡驱动2.1 先确认自己的显卡类型这一步很多人会直接跳过但恰恰是后面所有问题的根源。PyTorch能不能用上GPU加速跟你的显卡强相关。分三种情况没有独立显卡只有核显建议直接安装CPU版本不用折腾CUDA跑小模型、做推理完全够用。有NVIDIA独立显卡这是最主流的情况可以安装CUDA版本获得GPU加速。有AMD独立显卡Windows下PyTorch对AMD显卡的支持比较尴尬官方没有直接的ROCm支持建议还是装CPU版本或者后续用DirectML的构建版本。查看显卡的方法很简单右键桌面空白处看有没有NVIDIA 控制面板或者按Win R输入dxdiag在显示选项卡里查看显卡型号。我这里用GTX 1660 Ti做演示属于NVIDIA阵营走的就是CUDA版本路线。2.2 安装Anaconda注意版本别选错Anaconda的安装包可以在官网下载当前主流的Python版本已经到3.10以上了。我建议直接下载最新的64-Bit Graphical Installer版本安装时有几个关键点要注意安装路径不要带空格或中文比如D:\Anaconda3这种后面很多命令行工具对路径比较敏感路径里有中文会出各种幺蛾子。安装过程中有个Add Anaconda3 to my PATH environment variable的选项默认是不勾选的。我的建议是如果电脑上装软件比较频繁就勾上如果比较谨慎就不勾全程用Anaconda Prompt操作。勾上虽然方便但确实存在跟其他Python环境冲突的可能。两个用户安装选项选择Just Me就行省心且权限问题少。装完之后开始菜单里会出现Anaconda Prompt这个终端程序以后所有命令行操作都建议在这个终端里完成而不是用系统自带的cmd或PowerShell。原因很简单Anaconda Prompt已经帮你配好了conda相关的环境变量直接能用少踩很多坑。2.3 验证Anaconda安装成功打开Anaconda Prompt输入conda --version正常会输出类似conda 23.x.x的版本号。再看一下Python版本python --versionAnaconda自带了一个基础环境Python版本通常比较新。这一步出现任何命令找不到的错误说明Anaconda没有正确安装或者没有在Anaconda Prompt里操作回到上一步检查。还在做手足无措的事有些人装完Anaconda之后又去官网手动装了一个Python两个Python环境相互干扰conda命令明明存在但python指向了另一个路径后面装PyTorch就会出现各种玄学问题。建议系统里只保留Anaconda这一套Python环境。2.4 NVIDIA驱动和CUDA版本决定你能装什么PyTorch在Windows上用GPU版的PyTorch必须装NVIDIA显卡驱动这一点大家基本都知道。但有一个容易忽略的细节驱动版本不是越新越好而是要看它配套的CUDA版本能不能跟PyTorch要求匹配上。打开命令提示符cmd输入nvidia-smi屏幕右上角会显示一个CUDA Version比如CUDA Version: 12.1。这个数字代表你当前驱动支持的最高CUDA版本只要PyTorch要求的CUDA版本不高于这个数字就没问题。比如PyTorch官方安装命令里默认给的是CUDA 12.x你的驱动显示支持12.1那就能直接用。如果你的驱动版本很老显示最高只支持CUDA 11.8甚至更低那就要去NVIDIA官网更新驱动或者安装对应旧版的PyTorch。特别注意一点驱动自带的CUDA跟PyTorch实际用的CUDA toolkit是两回事。驱动只是提供底层运行环境PyTorch安装包已经内置了自己需要的CUDA运行库所以不需要你单独去下载安装完整的CUDA Toolkit。这一点新手容易搞混白白下载几个GB的安装包最后还装了一堆冲突组件。3. 用conda创建独立环境为什么不能直接在base环境里装3.1 单独建环境的意义很多第一次装PyTorch的同学打开Anaconda Prompt就直接pip install torch装到了base环境里。刚开始用没什么感觉但在base环境里装多了深度学习相关的包之后你会发现Anaconda自带的很多科学计算组件开始报错numpy版本对不上、matplotlib导入不了、anaconda自己的Navigator打不开。原因很简单base环境是Anaconda的家用环境里面预装了几百个包它们之间有着严格的版本依赖关系。你后装的PyTorch会强制升级或降级某些底层库破坏了原有的平衡。所以正确做法是独立创建一个虚拟环境PyTorch和它的依赖都装在里面跟base环境井水不犯河水。3.2 创建环境并激活打开Anaconda Prompt执行conda create -n pytorch python3.9这里的-n pytorch是给环境起名叫pytorchpython3.9指定Python版本。关于Python版本的选择官方兼容性做得已经比较好了3.8到3.11基本都可以用。我个人建议用3.9稳定性好各种第三方库的适配也最成熟。执行过程中会询问是否继续输入y回车。等它把基础环境创建完然后激活conda activate pytorch注意看命令行前面是不是变成了(pytorch)如果是说明已经进入这个虚拟环境了。这一步很容易忽略很多人创建完环境忘了激活后面pip install装到了base里自己还以为装到了新环境。验证一下当前环境的Pythonpython --version输出应该是3.9.x确认无误。4. 安装PyTorch官方命令、CUDA版本选择和国内镜像加速4.1 去PyTorch官网找准确的安装命令每次有朋友问我怎么装PyTorch我都会说一句话别背命令每次安装前去官网看一下因为官方命令会随着版本更新而变化。 PyTorch官网有一个安装向导页面选择你的操作系统、包管理器、CUDA版本它会自动生成对应的安装命令。根据装机时的实际情况它会分别给你CPU版本和CUDA版本的命令。举例来说如果你选择Linux pip CUDA 12.1命令可能是pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121如果选择Windows conda CUDA 12.1则可能是conda install pytorch torchvision torchaudio cudatoolkit12.0 -c pytorch我这里用的是conda安装。Windows下可以用conda也可以直接pip两者的差别稍后细说。4.2 判断该选CPU还是GPU版本回到我的机器上GTX 1660 Ti驱动显示的CUDA版本是12.1。那我就可以放心选择CUDA 12.1的PyTorch版本享受到GPU加速。如果你没有NVIDIA显卡或者驱动版本太老又不想更新驱动那就在官网向导里选择CPU版本命令大概是conda install pytorch torchvision torchaudio cpuonly -c pytorch。CPU版本能装吗当然能而且能用推理小模型、跑传统机器学习算法都没问题。只是训练复杂的卷积神经网络会慢一些这是硬件决定的没什么好抱怨的。4.3 国内网络环境的加速方案正常从官网源安装PyTorch速度通常很感人可能每秒几十KB几个GB的包要下载到天荒地老。这时候就需要用国内镜像源来加速。我的做法是配置conda的国内镜像用清华源或阿里云源替换默认源速度能快一大截。在Anaconda Prompt中执行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不过要注意PyTorch的conda包虽然主要托管在官方channel但也在conda-forge和pytorch这些channel下。直接在清华镜像环境中执行conda install pytorch -c pytorch有时候还是走官方源下载反而更慢。所以我更推荐用pip来安装PyTorch原因有两点pip的Wi-Fi兼容性、断点续传、二进制包分发做得都好。PyTorch的pip包可以从阿里云/腾讯镜像直接下载速度非常稳定。如果你决定用pip先给pip换成清华源一条命令pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple后续pip安装速度会提升很多。4.4 安装命令的最终选择综合以上考虑我在这篇博文里采用conda创建环境 pip安装PyTorch的组合。整条安装命令pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121如果网络不佳也可以直接pip install torch torchvision torchaudio默认会安装最新稳定版但不会是CUDA版本而是CPU版本。所以要走GPU路线还是得带上--index-url这个参数让它去下带CUDA的预编译包。这里我想多解释一句为什么这么绕pip默认的PyPI源里torch这个包名指向的是CPU版本。带CUDA的包是放在PyTorch自己的仓库里的需要用--index-url告诉pip去哪儿下载。如果你在官网选择Windows pip CUDA 12.1拿到的就是这条命令背后就是这个原因。4.5 安装过程中出现报错怎么办安装过程可能会遇到几种常见问题。遇到的最典型报错是类似ERROR: Could not find a version that satisfies the requirement torch这个大概率是网络问题pip访问PyTorch仓库超时或者被断。解决办法先换国内pip镜像再重试或者给pip加超时参数pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 --timeout 120还有一个常见问题安装到一半提示磁盘空间不足。PyTorch的GPU版本加依赖下载体积往往超过2GB解压后占用更多。如果你的C盘只剩十几个GB建议先把Anaconda环境迁移到其他盘或者直接清理一下C盘腾出空间。另外一个注意点安装包体积大、文件多pip有时候会卡在某一步不动像是hang住了。这不一定是死机有可能是后台在解压或者扫描依赖。超过10分钟没有任何动静可以强制中断重来pip有断点续传机制再次启动会接着下载已经完成的部分不用太担心重头再来。4.6 顺带聊聊torchvision和torchaudio注意上面的命令里还带了两个额外的包torchvision和torchaudio。torchvision是做图像处理和预训练模型用的torchaudio是音频处理库。有人会问我只需要PyTorch这两个必须装吗我的建议是直接装吧即使暂时用不到。第一它们是PyTorch官方生态的核心成员后面跑深度学习项目几乎都会用到。第二如果现在不装后续单独装的时候版本兼容问题又得折腾一遍一次到位省心。5. 验证安装结果GPU是否真的能跑起来5.1 命令行里快速验证装完之后别急着高兴先验证一下。在Anaconda Prompt确保处于pytorch环境中输入python进入Python交互模式依次输入import torch print(torch.__version__) print(torch.cuda.is_available())第一行输出PyTorch版本号第二行输出True或False。如果显示True恭喜GPU版本安装成功驱动和CUDA对接正常。如果显示False也不要慌按以下顺序排查确认你在安装时使用的是带CUDA的index-url而不是默认的CPU版本。输入print(torch.version.cuda)看有没有输出CUDA版本号。如果是None说明装的是CPU版。输入print(torch.cuda.get_device_name(0))看能不能识别出你的显卡型号。如果报错说明驱动层面就有问题回到nvidia-smi确认驱动状态。我自己的机器上输出是2.5.0 True NVIDIA GeForce GTX 1660 Ti看到显卡名字出现在屏幕上的一瞬间这个环境就真正可用了。5.2 用一个小demo实测GPU加速光看True还不够跑个小代码实测才算数。我写了个简单矩阵乘法的测试分别用CPU和GPU执行对比时间import torch import time # CPU版本 start time.time() a torch.randn(2000, 2000) b torch.randn(2000, 2000) c a b print(fCPU 计算耗时: {time.time() - start:.4f} 秒) # GPU版本 if torch.cuda.is_available(): start time.time() a a.cuda() b b.cuda() c a b torch.cuda.synchronize() print(fGPU 计算耗时: {time.time() - start:.4f} 秒)第一次GPU计算会包含CUDA上下文初始化可能比较慢但跑完之后稳定下来GPU比CPU快几十倍是正常的。这里每个版本执行完毕最好也根据实际内存大小调整矩阵尺寸比如单精度大一点2000x2000对大多数机器来说还好。在Anaconda Prompt运行这段代码建议保存成.py文件后执行避免在交互式命令行里粘贴多行代码出现奇怪的缩进问题python demo.py输出的结果大致是CPU在几秒级别GPU在零点几秒级别。看到这组数字你就能直观感受到GPU加速的意义。5.3 后续安装Jupyter Notebook环境搭好后总得有个趁手的编辑器来跑代码。对新手来说Jupyter Notebook是最友好的选择。在当前激活的pytorch环境下安装conda install jupyter或者用pip装pip install jupyter装完启动jupyter notebook浏览器会自动打开Notebook界面新建Python 3内核直接import torch就能用了。这里有个细节需要注意Jupyter必须安装在当前激活的pytorch环境里不是用Anaconda自带的基础环境。否则你在Notebook里import torch会报错因为基础环境下没有安装PyTorch。很多新手在barrage里查了半天最后发现是内核环境不对。6. 常见错误与排查经验速查安装过程中踩过的坑我整理了一张速查表方便你遇到问题时快速定位。这张表里的每一条都是实战里真实见过的报错不是凭空捏造的。报错/现象大概率原因解决办法conda 不是内部或外部命令没在Anaconda Prompt里操作或者Anaconda没装好改用Anaconda Prompt重装Anacondapython --version显示系统Python版本而非Anaconda存在多个Python环境路径冲突检查系统环境变量确保Anaconda路径排在前面pip install极慢或超时国外源网络不佳配置国内pip镜像换清华或阿里源安装后torch.cuda.is_available()返回False装的是CPU版本或驱动问题用带CUDA的pip命令重装更新NVIDIA驱动ImportError: DLL load failedCUDA相关DLL缺失或损坏更新显卡驱动卸载重装PyTorchtorchvision和torch版本不匹配混用了不同的安装源同时安装三个包不要单独安装OSError: [WinError 126] 找不到指定的模块显卡太老新版本PyTorch不兼容降低PyTorch版本装带旧CUDA的版本6.1 新版PyTorch在老显卡上不能用了怎么办这里展开讲一个值得注意的点。随着PyTorch迭代新版本逐渐放弃了对特别老的NVIDIA显卡比如GTX 7系、9系等的驱动支持。如果你的显卡比较老安装最新版PyTorch后import torch就报DLL错误可以考虑安装较早的版本比如用pip install torch1.13.1cu117 torchvision0.14.1cu117 torchaudio0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117这种指定版本号的方式兼容老硬件的概率更高。这个情况在2024年之后越来越常见建议老显卡用户优先寻找对应的旧版本。6.2 安装完成后Jupyter里import torch还是失败这个问题我遇到过一次而且特别容易迷惑人。明明在Anaconda Prompt的pytorch环境里import torch没问题一打开Jupyter就报错。原因在于Jupyter启动时用的Python内核不对。解决办法很简单在pytorch环境里分别执行conda install ipykernel python -m ipykernel install --user --name pytorch --display-name Python (pytorch)这样Jupyter的新建菜单里就会多出Python (pytorch)这个内核。创建Notebook时务必选择这个内核而不是默认的Python 3。7. conda和pip的选择心得别听网上吵看你自己的场景在装PyTorch这个话题里永远有人争论是conda好还是pip好。我自己的操作习惯是用conda管理环境用pip装包。这个问题我实际测试过两者的安装结果差别不大但在Windows环境下pip在下载速度和断点续传方面体验更好。如果单纯用conda安装官方给的conda命令写作conda install pytorch torchvision torchaudio cudatoolkit12.0 -c pytorch只要网络状态好、官网源能直连这条命令也能用而且conda会自动处理依赖库的版本管理不用你操心numpy这些底层的匹配问题。缺点就是国内网络环境有时候不稳定。但无论走哪条路核心原则都只有一个安装时确保命令里带有正确的CUDA版本标识或者明确指定cpuonly不要让我说什么版本就装什么版本得过且过。还有一点如果以后你在一个项目里用conda装另一个项目里用pip装混用是有可能引起版本混乱的。最简单的原则是同一个环境主安装方式最好统一在pip或者conda里不要一会儿conda一会儿pip地混装。等走到后面排错的时候你会感激这个习惯。8. 装完之后的日常维护建议PyTorch环境装好只是起点日常使用中还有几个小习惯值得养成。第一给环境取一个好识别的名字。我当时建环境用的是pytorch后面可能还会有tensorflow、paddle这些环境尽量用框架名作为环境名一目了然。第二定期用conda list查看当前环境的包列表这个习惯能帮你发现有没有不小心装错位置的包。第三如果PyTorch有重要更新你不需要重新创建环境直接在当前环境内更新即可pip install --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121但更新前一定记得备份当前依赖清单pip freeze requirements.txt万一更新后出现奇怪的问题还能用这个文件一键恢复。有人问Anaconda本体要不要更新我的看法是conda自身保持在可用的版本就好不要追求最新稳定才是最重要的。conda升级太激进有时候反而会让Anaconda Navigator跟环境配置之间出现兼容问题。9. 我在实际安装中踩过的几个坑最后聊几个我在折腾过程中印象比较深的坑权当警醒。最开始我直接图省事在base环境里pip install torch装是装上了但后来跑一个图像分类项目要装opencv和pillownumpy版本跟torch的根本要求冲突整个环境被我搞成一团最后只能重装Anaconda。从那以后我学乖了每个项目独立环境绝不将就。重装Anaconda虽然花半小时但排查环境冲突可能花一整天这笔账要算清楚。有一个坑特别隐蔽win10系统在显卡驱动更新后有时会静默重置CUDA相关的组件路径导致原本好用的PyTorch突然无法导入。这种情况下不需要重装PyTorch重装一遍NVIDIA驱动大部分情况下能解决。我自己遇到过两次第一次排查了一下午第二次就轻车熟路了。还有个细节是关于换源后的conda config --show channels如果你看到的源列表里出现了奇怪的自定义地址很可能是之前某次复制网上的教程时粘贴了别人的配置。建议恢复干净状态conda config --remove-key channels这样会把conda源恢复为官方默认再按需重新添加。如果想把环境整体迁移到别的电脑用conda env export environment.yml在另一台电脑上conda env create -f environment.yml这个yml文件会把当前环境的包版本、conda源、Python版本完整记录下来复制环境时比requirements.txt更全面。但要注意环境迁移后显卡驱动可能需要单独调整CUDA版本可能跟当前机器不匹配。我个人现在装PyTorch的固定流程是检查驱动→创建conda环境→激活→配置pip源→pip install带CUDA版本的torch→验证GPU→装Jupyter→收工。整个过程大约15分钟足够稳定值得反复使用。