1. 写在前面:Windows 下装 PyTorch 这件事,其实没你想的那么折腾
如果你在 Windows 上装过 PyTorch,大概率经历过这种画面:打开官方推荐的那条安装命令,复制粘贴,回车,然后盯着终端进度条一分钟都不带动的。等了几分钟,要么直接超时失败,要么下载到一半断掉,要么好不容易装完了,进 PyCharm 一跑import torch,红字报错直接把人看懵。
我刚开始接触深度学习那会儿也被这套流程劝退过好几次。后来折腾得多了,才慢慢摸清楚问题其实出在三个地方:Python 环境不干净、下载源没选对、PyCharm 解释器和虚拟环境没配对。这三个问题一旦解决,整套流程十分钟之内就能跑通,后续写代码、训练小模型也顺得不行。
这篇教程就是围绕这三件事来说的。我会带你从零开始,在 Windows 上完成 PyTorch 的安装,全程使用国内镜像加速,再把 PyCharm 的环境配置到能直接跑通代码的程度。整个流程适合刚入门深度学习、想在本地跑神经网络实验的同学,也适合那些之前装过但老是出问题的朋友,照着走一遍基本能清零大部分常见的坑。
在开始之前先打个预防针:PyTorch 的安装逻辑本身并不复杂,复杂的是很多人连第一步都没搞清就急着复制命令。所以下面我会先把关键点拆开讲,再给你一条可以直接照着做的完整命令流程。你不需要懂太多底层机制,但多理解一点原理,出问题时自己也能判断个大概。
2. 装之前必须搞清楚的三件事
2.1 先装 Python,别上来就装 PyTorch
很多人第一次装 PyTorch 失败,是因为压根没装 Python,或者系统里同时存在好几个 Python 版本,导致 pip 不知道该装到哪个环境里去。
PyTorch 本身是 Python 的一个第三方库,它依赖 Python 的包管理工具 pip 来安装。所以正确的顺序是:先装 Python,再创建虚拟环境,最后在虚拟环境里安装 PyTorch。这个顺序不能乱。
Windows 下的 Python 安装比较简单,直接到官网下载 Windows 安装包即可。需要注意的是,安装时务必勾选"Add Python to PATH"这一项,否则后面在命令行里敲python会提示找不到命令。安装完成后,打开命令提示符(Win + R 输入 cmd),输入python --version,能正常输出版本号就说明基础环境没问题。
如果你以前装过 Python 但版本比较老,建议尽量用 3.9 及以上版本。PyTorch 对老版本 Python 的兼容性虽然还在,但部分新功能和新预编译包的依赖要求会偏高,用新版本省事很多。
2.2 理解"国内镜像"到底解决的是什么问题
所谓"国内镜像",本质上就是把默认的海外软件仓库内容同步一份到国内服务器上。你下载 PyTorch 时,pip 默认访问的是官方源(也就是海外的源站),跨海下载速度非常不稳定,尤其在高峰期,几十 MB 的包也可能拖成几十分钟。
换用国内镜像后,你的请求会直接打到延迟很低的本地服务器上,速度提升是肉眼可见的。通常在 Windows 下用清华源或阿里源,几十到几百 MB 的安装包都能在几分钟内拉完,有些甚至几秒钟就能搞定。
需要说明的是,"国内镜像"和网络加速是两码事,它只解决软件下载渠道的物理距离问题,不解决任何其他联网问题。也就是说,你只要能把 pip 的下载源切到国内镜像上,安装速度的问题就解决了一大半。
2.3 选版本:CPU 版还是 GPU 版
这是新手最容易迷糊的地方。其实 PyTorch 分两种预编译版本:CPU 版和 GPU 版(也就是 CUDA 版)。CPU 版不依赖独立显卡,任何电脑都能跑,但训练速度慢;GPU 版需要你的电脑有 NVIDIA 显卡,并且要安装匹配的显卡驱动和 CUDA 工具包。
如果你只是学习代码逻辑、跑一些轻量级实验,CPU 版完全够用。如果你的电脑有 NVIDIA 显卡,并且后续要训练稍微大一点的模型,那么装 GPU 版会明显更快。
多数情况下,本地开发环境我建议分开管理:日常写代码验证逻辑用 CPU 版,跑真正的训练任务再切换到 GPU 版。虚拟环境可以让它们共存而不互相干扰,后面我会详细说怎么做。
> 注意:如果你拿不准自己该装哪种,先查一下显卡型号。在任务管理器"性能"标签里能看到 GPU 名称,如果里面有 NVIDIA 字样,才需要考虑 CUDA 版;如果是 Intel 核显或 AMD 显卡,直接装 CPU 版就行。3. 实操全过程:从空环境到跑通 PyTorch
3.1 创建干净的虚拟环境
我强烈建议你无论装什么 Python 包,都先建一个独立虚拟环境。虚拟环境就像给项目单独划出一个小隔间,里面装的包互不影响,也不会污染全局环境。
打开命令提示符,执行以下命令创建一个名为torch_env的虚拟环境:
python -m venv torch_env创建完成后,激活这个环境:
torch_env\Scripts\activate激活成功后,命令行最前面会出现(torch_env)的提示,这就表示你现在已经处于虚拟环境中了。后续所有安装操作都基于这个环境进行。
3.2 把 pip 切换成国内镜像
切镜像有两种方式:临时指定和永久写入配置。临时指定就是在安装命令里加-i https://pypi.tuna.tsinghua.edu.cn/simple,只影响当前这一条命令。永久配置则是把镜像源写进 pip 的配置文件里,以后每次用 pip 自动走镜像,不用每次输一长串。
如果你是新手,我更推荐直接永久配置。执行下面这条命令,pip 就会把清华源写进用户级配置文件:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple配置完成后,可以用pip config list检查一下镜像源是否生效。以后你在这个环境里执行任何 pip 安装命令,都会自动从清华源拉文件,速度会稳定很多。
3.3 安装 PyTorch:CPU 版与 GPU 版命令详解
镜像配好后,安装 PyTorch 本身就是一条命令的事。
CPU 版安装命令:
pip install torch torchvision torchaudio这条命令会安装三个核心包:torch 是主框架,torchvision 是图像处理相关的工具箱,torchaudio 是音频处理相关的工具箱。对绝大多数视觉、文本任务来说,这三个包一次装齐就够了。
GPU 版安装命令:
这里有个容易踩坑的点。如果你直接用上面的命令装 GPU 版,默认装的是 CPU 版,因为 pip 默认会优先匹配你本机兼容的版本。要装 GPU 版,需要指定 CUDA 版本对应的安装源和标签。
以 CUDA 11.8 为例,命令是:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118这个命令会从 PyTorch 官方预编译仓库拉取 CUDA 11.8 对应的所有包。缺点是这个地址本身在海外,下载速度可能不理想。这时候需要把下载源和解析索引分开处理:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple不过实际测试下来,更省事的方法是直接用镜像站同步的 PyTorch 轮子包。你可以把上面的命令替换成国内镜像对应的 wheel 地址:
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.1+cu118 -f https://mirrors.aliyun.com/pytorch-wheels/cu118/这条命令的作用是:从阿里云镜像站点下载 PyTorch 的预编译轮子文件。因为轮子文件本身就是为 Windows + CUDA 编译好的,所以不需要本地再装完整的 CUDA 工具包,只需要保证显卡驱动够新即可。
> 提示:GPU 版的安装,多数情况下不需要单独安装 CUDA Toolkit。预编译包内部已经绑定好必要的 CUDA 运行库,只要 NVIDIA 驱动版本满足要求就能跑。别被网上那些必须装 CUDA Toolkit 的教程带偏,先试最简单的方案。3.4 验证安装是否成功
安装完成后,来到验证这一步。在命令行里输入:
python -c "import torch; print(torch.__version__)"如果正常输出类似2.0.1+cu118这样的版本号,说明 PyTorch 核心包已经安装成功。
接下来验证 PyTorch 是否能正常调用 GPU:
python -c "import torch; print(torch.cuda.is_available())"如果是 CPU 版,这里会输出False,这是正常的,不代表安装失败。如果是 GPU 版且驱动环境正常,这里会输出True,同时你还可以通过torch.cuda.get_device_name(0)查看显卡型号。
到这里,命令行层面的安装工作就全部完成了。但很多人卡在下一步:明明命令行里验证没问题,进了 PyCharm 却报错,或者压根找不到这个环境。接下来就解决这个问题。
4. PyCharm 环境配置:让代码跑起来的最后一公里
4.1 新建项目并绑定虚拟环境
打开 PyCharm,新建项目时选择"Previously configured interpreter"(使用已配置的解释器),然后在解释器列表里找到你刚才创建的虚拟环境。
如果没有出现在列表里,需要手动添加:点击 "Add Interpreter" -> "Existing environment" -> 右边的三点按钮,浏览到刚才创建的虚拟环境目录下的python.exe文件。路径一般类似:
C:\Users\你的用户名\venvs\torch_env\Scripts\python.exe选好后,PyCharm 会自动识别该环境以及其中的所有第三方包。
这里我特别强调一个新手常犯的错误:千万不要直接用全局 Python 作为解释器,也不要勾选"New environment using Virtualenv"重新创建一个新环境。这两种做法都会导致你辛苦装的 torch 在新环境里找不到,最终出现ModuleNotFoundError: No module named 'torch'的报错。
4.2 在 PyCharm 里验证并跑第一个测试脚本
绑定好解释器后,新建一个 Python 文件,随便起个名字,比如test_torch.py,内容写上:
import torch print("PyTorch 版本:", torch.__version__) print("CUDA 可用:", torch.cuda.is_available()) if torch.cuda.is_available(): print("GPU 名称:", torch.cuda.get_device_name(0))直接右键运行这段代码。如果输出正常,说明 PyCharm 和 PyTorch 已经完成对接,你可以开始正常写代码了。
如果在这一步报了No module named 'torch',优先检查 PyCharm 右下角显示的解释器路径是不是指向了你激活的那个虚拟环境。很多情况下,PyCharm 默认用的是全局解释器,改回来问题就解决了。
4.3 PyCharm 里还有几个值得改的配置
解释器配对完成后,有几项配置可以顺手改掉,能明显提升使用体验。
设置 pip 镜像:虽然你已经在命令行里配置过 pip 全局镜像,但 PyCharm 自带的包管理工具是独立进程,它默认不走命令行里的 pip 配置。推荐在 PyCharm 的设置里,导航到 "Project" -> "Python Interpreter" 下的 "Manage Repositories",把清华或阿里镜像地址加进去。这样你在 PyCharm 图形界面上安装包时也能享受加速。
设置默认项目路径:"Settings" -> "Appearance & Behavior" -> "System Settings",把默认项目目录改成你习惯的工作目录,避免每次都要重新定位。
设置代码风格:如果后续要写大量代码,建议顺手把缩进、换行等风格统一,避免复制别人代码时出现格式混乱。不过这部分看个人习惯,不调整也不影响功能。
> 注意:PyCharm 的"运行"按钮旁边那个绿色三角,默认是在当前文件所在目录下运行解释器。如果你开了多个项目窗口,一定要确认当前打开的这个项目绑定的是正确的虚拟环境,否则很容易出现环境对不上、代码跑不起来的情况。5. 常见问题与排查实录:我把这些年踩过的坑整理成了表格
5.1 安装过程中的高频报错
| 报错信息 | 大概率原因 | 处理方式 |
|---|---|---|
Could not find a version that satisfies the requirement torch | pip 找不到兼容版本,一般是 Python 版本过老或没有指定正确的源 | 升级 Python 到 3.9+;检查镜像源是否配置正确 |
Connection timed out | 下载源太远或网络波动 | 换用国内镜像源,重试安装 |
No module named 'torch' | 解释器选错环境,或在 PyCharm 里没绑定正确的虚拟环境 | 检查 PyCharm 解释器路径,改为虚拟环境里的 python.exe |
torch.cuda.is_available()返回 False | 装的是 CPU 版本;或 NVIDIA 驱动版本太旧 | 按上文 GPU 版命令重装;更新显卡驱动 |
FileNotFoundError: cudnn not found | 某些旧版 CUDA 版 PyTorch 需要特定 cuDNN 动态库 | 多在更新驱动后重装;或升级到新版 PyTorch |
5.2 命令行装好了、PyCharm 里却找不到包
这个问题占了我收到疑问的一大半。命令行能导入 torch,说明安装没问题;PyCharm 导入失败,基本只有一个原因:PyCharm 解释器指向的环境和命令行激活的环境不是同一个。
举个例子:你在命令行里激活的是torch_env,但 PyCharm 默认新建了一个.venv环境,那 torch 只存在于torch_env里,.venv里当然找不到。你要么在 PyCharm 里把解释器切换到torch_env,要么在torch_env里重新安装一遍包。
5.3 CUDA 相关问题的排查思路
很多人在 Windows 上遇到 GPU 版 PyTorch 装完但cuda.is_available()返回 False,第一反应是重装 CUDA、重装 PyTorch,来回折腾好几轮也没解决。我的排查经验是,先跑下面这几条命令:
nvidia-smi如果提示找不到命令,说明没有安装 NVIDIA 驱动或者驱动不在 PATH 里,先装驱动。如果能正常输出显卡信息,看右上角的 CUDA 版本号,保证你的驱动支持 CUDA 版本不要太老。一般驱动版本在 450 以上,跑常见 PyTorch 版本都没问题。
另一个容易被忽视的点是笔记本电脑的双显卡切换。很多笔记本是集显加独显的组合,如果系统默认让 Python 使用集显,torch.cuda.is_available()也不会报错,但会返回 False。你可以在 Windows 的"图形设置"里指定某个应用使用高性能 NVIDIA 处理器,但说实话,日常跑代码很少被这个影响,所以先排除驱动问题再考虑这个。
5.4 虚拟环境管理的一个小建议
如果觉得命令行手动创建和管理虚拟环境麻烦,也可以直接用 PyCharm 创建虚拟环境,然后在 PyCharm 的终端里执行 pip 安装。只要保证创建环境和安装包用的是同一个环境即可。
我自己实际建议是:Windows 下用命令行创建环境,再用 PyCharm 绑定,因为这样环境的位置可控、命名清晰,后续多项目切换也更高效。
6. 一些值得说的实在话
这套流程写下来,其实技术含量并没有多高,核心就三件事:干净的 Python 环境、合理的下载源、匹配的解释器。真正的价值在于,每个环节我都踩过各种意料之外的坑,所以知道你会卡在哪里。
就我个人经验来说,安装 PyTorch 真遇到问题,九成以上不是命令不对,而是环境错乱。见过太多同学在全局环境里堆了几百个包,互相不兼容,最后怎么装都报错。所以说虚拟环境不是可选项,而是必选项,尤其在 Windows 下,这能帮你省掉大量排查时间。
最后再分享一个小细节:装好之后,建议第一时间在 PyCharm 里把那个test_torch.py跑通再关闭,不要只在命令行验证完就觉得完事了。因为命令行环境、PyCharm 解释器选择、包路径解析这三者之间有个简短的延迟和匹配过程,只有亲自跑通一次,你才能确定整套链路是通的。把这套基础打牢,后面无论是读代码、跑实验,还是换环境重装,你心里都是有底的。