先直接给结论:这篇内容围绕“深度学习环境”“Anaconda”“PyTorch”和编辑器选择来展开,目标是在一台普通 Windows 电脑上,从零装出一套能跑深度学习代码的环境。它适合两类人:第一次接触深度学习、还分不清环境、依赖、虚拟环境是什么的初学者;以及曾经照着教程装到一半报错,最后被迫重装系统的同学。最值得关注的点不是工具本身,而是环境搭建的顺序和判断标准——你知道下一步该点什么、装完该验证什么、报错该看哪里,就比大多数人强了。
我见过很多新手卡住的情况,仔细复盘之后基本都是同一个原因:环境没装好,但不知道问题出在哪。装完 Anaconda 就着急跑 PyTorch,结果 import torch 报错;GPU 版本装了一下午,最后发现显卡驱动太老;编辑器里选了错误解释器,代码明明写对了却一直找不到库。这些不是模型或代码的问题,而是环境链条没有打通。下面按我自己实测后觉得最稳的顺序拆一遍。
1. 先拆清楚:环境到底由哪几部分组成
1.1 深度学习环境不是一个软件,而是一条链路
很多人以为装一个 Anaconda 就等于有环境了,这是常见误区。深度学习环境至少包含四样东西:
- Python 解释器:负责执行 .py 文件。
- 包管理器:负责安装、卸载、升级第三方库,Anaconda 里的 conda 和 Python 自带的 pip 都属于这一类。
- 深度学习框架:比如 PyTorch,它让你的代码能够调用神经网络、自动求导、GPU 加速等能力。
- 编辑器或交互环境:比如 Jupyter、VS Code、PyCharm,负责写代码、跑代码、看结果。
这四部分不是割裂的。Python 是地基,conda 管理地基上的装修材料,PyTorch 是房子里的核心电器,编辑器是你操作房间的控制面板。任何一环对不上,都会出现“代码在别人电脑能跑,在自己电脑报错”的情况。
1.2 为什么推荐 Anaconda 而不是裸 Python
新手最容易踩的坑是直接从 python.org 下载 Python,然后开始用 pip 装包。这个问题不是不能用,而是 Python 环境一旦被装乱,清理成本很高。
Anaconda 自带一个 Python 解释器,还自带 conda 工具。conda 最大的优势是能创建多个互相隔离的虚拟环境。比如你有一个项目需要 PyTorch 2.0,另一个项目需要 PyTorch 1.8,两个项目的依赖有冲突,那就各自建一个环境,互不影响。这是深度学习开发里非常实用的能力。
对零基础的用户来说,Anaconda 还自带 Jupyter、Spyder 等常用工具,安装后可以少配很多依赖。所以我的建议是:不要单独装 Python,直接装 Anaconda。
1.3 PyTorch 先想清楚 CPU 还是 GPU
PyTorch 有两个版本方向,一个是 CPU 版,一个是 GPU 版。
CPU 版安装最简单,对硬件没有要求,普通笔记本都能装。适合做学习、调试、跑小型网络。缺点是训练速度慢,稍微大一点的模型或者数据集就会很吃力。
GPU 版需要 NVIDIA 显卡和对应驱动,另外还需要安装和匹配 CUDA、cuDNN 这部分底层依赖。安装门槛更高,但训练速度通常比 CPU 快很多。
从学习方法论来说,我建议:如果只是入门,电脑里也没有 N 卡,直接装 CPU 版,先把流程跑通。如果确定要长期做深度学习或者已有 N 卡,那就一次到位装 GPU 版,省得以后重装。
1.4 编辑器怎么选
编辑器不是深度学习环境的核心,但选错了会带来大量无效折腾。比较常见的组合有三种:
- Jupyter Notebook / JupyterLab:适合边写边看结果,教学和探索比较方便。
- VS Code:轻量,插件丰富,写代码和跑终端都很顺手。
- PyCharm:专业 IDE,调试功能强,适合做完整项目和长期开发。
对零基础用户,我更推荐先装 Anaconda 自带的 Jupyter,之后再用 VS Code 或 PyCharm。先别急着追求“最强编辑器”,能稳定运行、能切换解释器就够用。
2. 安装前的准备:先把版本关系理清楚
2.1 确认系统类型和位数
安装深度学习环境之前,先确认几件事:
- 操作系统是 Windows、macOS 还是 Linux。
- 系统位数是不是 64 位。现在基本所有新电脑都是 64 位,但如果是很老的机器,要用 32 位适配会麻烦很多。
- 磁盘剩余空间够不够,Anaconda 安装完大约会占用几 GB 空间,PyTorch 装完也会再占用不少。
- 电脑有没有独立显卡,显卡是 NVIDIA 还是 AMD。
PyTorch 对 NVIDIA GPU 支持最成熟。AMD 显卡在部分 Linux 环境下也能用,但在 Windows 下门槛更高。如果电脑没有 NVIDIA 显卡,直接走 CPU 版路线。
2.2 决定 Python 版本
Anaconda 安装包本身自带一个 Python 版本。安装过程中一般不需要手动指定。安装之后创建虚拟环境时,可以按需选择 Python 版本,比如python=3.9或python=3.10。
这里有一个原则:不要为了追求新而选太新的 Python,也不要因为教程里写了某个版本就死抠。最好以 PyTorch 官网当前支持情况为准。官网没有明确支持某个最新 Python 版本时,建议用稍早的稳定版本,兼容性问题更少。
2.3 先访问官网,再决定安装命令
很多安装失败都是因为命令记错了。PyTorch 官网会提供一个命令生成器,选择操作系统、包管理器、CUDA 版本,它会自动生成对应的安装命令。
实际操作中,先打开 Anaconda 官网下载安装包,再打开 PyTorch 官网查看安装命令,同时准备好终端。这三个页面都确认之后,再一步一步执行。不要凭记忆敲命令,尤其是带有 CUDA 后缀的安装命令。
2.4 网络慢和下载失败的处理思路
Anaconda 安装包比较大,PyTorch 的包也很大,国内网络环境下载时可能很慢,甚至中断。遇到这种情况不需要急着换工具,可以按顺序排查:
- 看是不是下载源太慢。Anaconda 可以配置国内镜像源,比如清华镜像。
- 看是不是命令行下载时网络抖动。可以重试几次,或者用 conda 自带的重试参数。
- 看是不是本地磁盘空间不足。
- 看是不是杀毒软件或安全策略拦截了下载过程。
这里要注意一点:conda 换镜像源时,别随便抄一段命令就执行,要看自己用的操作系统和 conda 版本。现在官方源偶尔会出现 404、unavailableinvalidchannel 这类错误,多数是源地址写错或者源配置残留导致的。遇到这种情况,先查看 .condarc 配置,把无效地址清掉,再回到默认源。
3. 安装 Anaconda:从下载到验证
3.1 Anaconda 下载和安装
Anaconda 官网地址是 https://www.anaconda.com/download ,进入后选择对应操作系统的安装包。Windows 用户选择 64-Bit Graphical Installer,macOS 和 Linux 用户分别选择对应版本。
安装时需要注意几个细节。
第一,安装路径里尽量不要出现中文和空格。比如 D:\Anaconda3 这样的路径会更稳妥。有的教程说可以装 C 盘,但 C 盘空间紧张时,后续安装深度学习包会很被动。
第二,安装过程中会提示是否将 Anaconda 添加到 PATH 环境变量。不同版本提示各不相同,有的安装器默认不勾选。如果你不熟悉环境变量,我的建议是先勾选,方便在命令行直接使用 conda;如果安装时没有勾选,之后可以用 Anaconda Prompt 进入 conda 环境,不一定要手动改 PATH。
第三,安装完先重启一次终端,不要安装完立刻继续跑命令。系统环境变量重新加载后,conda 命令才能被正确识别。
3.2 验证 conda 是否可用
安装完成之后,打开 Windows PowerShell、命令提示符或者 Anaconda Prompt,输入:
conda --version如果出现 conda 版本号,说明安装成功。如果提示“conda 不是内部或外部命令”,先确认:
- 是否通过 Anaconda Prompt 打开。
- 是否能找到 Anaconda 安装目录。
- 安装时是否勾选了添加 PATH。
推荐先使用 Anaconda Prompt。这个专用终端会自动加载 Anaconda 环境变量,能避开很多初学者容易卡住的 PATH 问题。
3.3 更新 conda 和必要工具
刚装完的 Anaconda 自带的 conda 版本可能不是最新的。不一定要马上更新,但如果你后面安装包时提示 conda 版本过旧,可以先更新:
conda update conda更新过程可能会比较慢,因为它要处理一些基础元数据。更新不成功时不要反复强行执行,先看网络和源配置。如果只是日常安装包,旧一点的 conda 一般也够用。
4. 创建虚拟环境并安装 PyTorch
4.1 为什么不直接装在 base 环境
Anaconda 默认有一个 base 环境,很多新手图省事,直接conda install pytorch把所有包都装到 base 里。短期没问题,长期很麻烦。
因为 base 往往承担了 Anaconda 自身的依赖管理,如果再塞入不同项目的框架,很容易出现依赖冲突。比如某个库升级后要求 Python 版本不能低于 3.10,但另一个库只能跑在 3.9 上,这时候就进退两难。
更好的做法是给深度学习项目单独建一个环境。举例:
conda create -n pytorch_env python=3.10这条命令创建了一个名为 pytorch_env 的虚拟环境,并指定 Python 版本为 3.10。创建成功后,激活环境:
conda activate pytorch_env之后所有 PyTorch 相关安装都在这条环境里完成。
4.2 安装 PyTorch 的两种方式
先说明,一切以 PyTorch 官网生成的命令为准。下面给出的命令是典型结构,不代表所有环境都适用。
CPU 版安装命令通常是:
conda install pytorch torchvision torchaudio cpuonlyGPU 版安装命令通常带有 cuda 版本标识,比如:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia我建议第一次安装时,直接到 PyTorch 官网选择对应配置,复制生成的命令来执行,这样最不容易错。
如果官网推荐使用 pip 安装,也可以切换到 pip:
pip install torch torchvision torchaudiopip 和 conda 都能装 PyTorch,但混用时要注意依赖一致性。最常见的问题是:conda 环境里已经有了某个包,再用 pip 装同一包的不同版本,结果版本被覆盖,导致后续 import 出现奇怪错误。我的原则是:一个环境里主要以 conda 装包,如果某个包只在 PyPI 有,再用 pip 补装,并记录好版本。
4.3 如何验证 PyTorch 安装成功
环境激活状态下,在命令行输入 python,进入交互式环境,然后执行:
import torch print(torch.__version__)如果能输出版本号,说明 PyTorch 已经装好。如果报错,优先看这几项:
- 当前环境是否激活。
- 安装命令是否包含当前环境的包源。
- Python 版本是否和 PyTorch 要求的版本匹配。
这一步是最基本的验证。只有 import torch 成功,后续才能继续跑模型。
4.4 检查 GPU 是否可用
如果装的是 GPU 版,接着执行:
print(torch.cuda.is_available())返回 True,说明 PyTorch 能调用 NVIDIA GPU。返回 False,则可能是:
- 显卡驱动太旧。
- 安装的 PyTorch CUDA 版本和驱动支持的 CUDA 版本不匹配。
- 没有 NVIDIA 显卡。
- PyTorch 安装成了 CPU 版。
这里要注意:驱动版本和 PyTorch 自带的 CUDA 运行时不完全是一回事。PyTorch 的安装包通常会带上它需要的 CUDA 运行库,但显卡驱动必须支持对应的 CUDA 版本。驱动太旧时,即使 torch 显示版本正常,cuda.is_available() 也可能返回 False。
先查看驱动信息,可以打开 NVIDIA 控制面板或者用命令行查看显卡驱动版本,然后对照显卡驱动和 CUDA 版本的兼容关系。不过不用死记版本号,只要驱动足够新,一般都能兼容较新的 PyTorch。
4.5 没有 NVIDIA GPU 怎么办
没有 N 卡或者显存不够,就把 PyTorch 当作 CPU 版使用。训练速度会慢,但学习过程不受影响。
CPU 版也需要注意一点:不要拿特别大的模型和数据集直接跑。一个只有几千张图的分类任务,CPU 版还能勉强应对;动辄几十万样本的训练任务,CPU 版就非常吃力。不是不能跑,而是时间成本明显上升。
对于低配机器,我的建议是:
- 用小型网络,比如减少卷积层数量、降低输入尺寸。
- 用小批量,比如 batch_size 从 32 降到 8 或 4。
- 先用少量样本验证代码能跑,再决定是否扩大规模。
- 记录每次迭代的单次耗时,以便估算整体训练时长。
5. 安装和配置编辑器
5.1 Jupyter:先跑通交互式学习
Anaconda 安装时一般会自带 Jupyter Notebook 或 JupyterLab。在命令行输入:
jupyter notebook浏览器会自动打开 Jupyter 界面。如果没有打开,可以把终端输出的地址复制到浏览器访问。
在 Jupyter 里新建 Python 3 文件,输入 import torch,能执行成功,说明环境链路已经通了。Jupyter 的核心价值是逐格执行,适合快速验证、画图、写笔记,很多教程代码也是按 Jupyter 格式组织的。
5.2 VS Code:适合日常开发
VS Code 安装后需要安装 Python 扩展。打开一个 .py 文件时,VS Code 会提示选择解释器,这时候选择 Anaconda 里的 pytorch_env 环境即可。
VS Code 还可以打开终端,终端会自动进入当前选中的环境,这样可以直接在编辑器里执行 conda 命令。
如果 VS Code 里 import torch 报错,但命令行里不报错,大概率是解释器选错了。先点击 VS Code 右下角或状态栏里的 Python 版本,重新选择 pytorch_env。
5.3 PyCharm:适合正式项目
PyCharm 的配置方式略有不同。创建新项目时,可以指定 base interpreter 为 Anaconda 环境下的 python.exe,也可以指定已有的 conda 环境。
如果是 PyCharm,找到设置里的 Python Interpreter,选择 Existing environment,然后定位到 pytorch_env 环境对应的 python.exe 路径。
很多初学者在 PyCharm 里遇到“ModuleNotFoundError: No module named 'torch'”,原因就是项目解释器选成了默认的 Python,而不是 conda 环境。这是环境配置里最典型、也最容易忽略的问题。
5.4 编辑器选哪一个最合适
对零基础的人,我给的顺序是:先用 Jupyter,再用 VS Code,等要写完整项目时再切 PyCharm。
Jupyter 的好处是实时反馈,适合看教程、做实验。VS Code 的好处是轻量,写脚本、调试、配置环境都比 Jupyter 更接近真实开发。PyCharm 更适合做工程化项目,比如项目里有多个模块、配置文件和启动脚本。
不需要三个都装。装两个就够,把其中一个用熟,比三四个都装但都不熟悉要强得多。
6. 第一次完整运行:从环境到训练代码
6.1 用一个最短代码验证整条链路
安装完所有工具之后,最难的不是安装,而是确认“整条链路真的没问题”。我建议用一个 10 行以内的代码验证。
在编辑器里新建脚本,输入下面这段示例:
import torch import torch.nn as nn model = nn.Sequential( nn.Linear(4, 8), nn.ReLU(), nn.Linear(8, 1) ) x = torch.randn(2, 4) y = model(x) print(y.shape) print(torch.__version__) print("cuda available:", torch.cuda.is_available())这段代码做了三件事:导入 PyTorch、创建一个小网络、跑一次前向计算。如果输出torch.Size([2, 1]),说明 PyTorch 的核心功能正常。
6.2 跑一个最简单的神经网络训练
只验证 forward 还不够,最好再跑一次包含损失函数和反向传播的训练过程。下面是一个完全开源、任何人可以自行运行的经典最小示例:
import torch import torch.nn as nn # 生成一组简单数据 x = torch.linspace(-1, 1, 100).reshape(-1, 1) y = x.pow(2) + 0.1 * torch.randn(x.size()) model = nn.Sequential(nn.Linear(1, 16), nn.ReLU(), nn.Linear(16, 1)) loss_fn = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.01) for epoch in range(200): pred = model(x) loss = loss_fn(pred, y) optimizer.zero_grad() loss.backward() optimizer.step() if (epoch + 1) % 50 == 0: print(f"epoch {epoch+1}, loss: {loss.item():.6f}")这段代码不需要真实数据集,也不需要任何外部数据文件。如果它能跑完并且 loss 逐渐下降,说明几件事:PyTorch 的自动求导正常、优化器正常、CPU 或 GPU 计算正常。
6.3 怎么判断训练是正常的
很多初学者看到 loss 数值就慌。其实判断标准很简单:
- 程序没有中途崩溃。
- 每个 epoch 都能正常打印。
- loss 整体呈现下降趋势。
- 如果使用 GPU,在任务管理器里能看到 GPU 占用或显存占用上升。
如果 loss 不降反升,或者一直保持不变,先不要急着换模型。很多情况下是数据没归一化、学习率太大或太小,这些属于训练调试问题,不是环境问题。
6.4 从单条任务到批量任务的习惯
环境跑通后,很多人的下一步是把真实数据拿进来训练。这时候最忌讳的是“直接把全部数据和全部参数一次性跑起来”。
比较稳妥的步骤是:
- 先用 100 条样本跑 1 个 epoch,确认代码没有语法错误和路径问题。
- 再用全部数据跑 1 个 epoch,估算单轮耗时。
- 最后再调 batch size、学习率等参数。
这个习惯能帮你把“环境问题”“数据问题”“模型问题”分开排查,不会因为一次训练崩溃就没头绪。批处理图像、批量文本这类任务,也建议遵循同样的思路。别一上来就开最大并发,也别把所有文件一次性塞进内存。
7. 高频问题和排查顺序
7.1 conda 命令找不到
现象:在 PowerShell 或命令提示符里输入 conda,提示找不到命令。
排查顺序:
- 打开 Anaconda Prompt,再输入 conda --version。
- 如果能用,说明是 PATH 没有配置,或者当前终端没有重新加载环境变量。
- 检查 Anaconda 安装目录是否存在。
- 如果没有配置 PATH,可以手动把 Anaconda 安装目录和 Scripts 目录加入系统环境变量,也可以始终使用 Anaconda Prompt。
7.2 下载慢、404、unavailableinvalidchannel
现象:conda install 时长时间卡住,或者出现 HTTP 404、unavailableinvalidchannel。
这不是某个单一原因导致的问题。首先看源配置,可能在 .condarc 里配置了失效的镜像地址。清理或恢复默认源:
conda config --remove-key channels conda config --show channels然后再尝试安装。如果仍然慢,可以配置一个国内镜像源,但一定要用当前可用的地址,并且不要和官方源混用。
下载慢的时候,也可以试试把安装方式换成 pip,有时速度反而更稳定。这里没有绝对最优方案,不同网络环境表现不同。
7.3 import torch 报错
现象:import torch 提示 No module named 'torch'。
排查顺序:
- 确认当前终端所在环境是否是 pytorch_env。
- 在 Python 交互环境里执行 import sys; print(sys.executable),确认解释器路径。
- 在编辑器里重新选择解释器。
- 如果确认环境正确,重新执行 PyTorch 的安装命令。
一个非常常见的场景:命令行里安装成功,但编辑器里 import 不到,因为编辑器用的是另一个 Python 环境。这个问题不是 PyTorch 装坏了,而是选错了解释器。
7.4 torch.cuda.is_available() 返回 False
排查顺序:
- 确认安装的是 GPU 版,而不是 CPU 版。
- 确认电脑有 NVIDIA 显卡,并且驱动已安装。
- 查看显卡驱动版本,确认支持 PyTorch 所需的 CUDA 版本。
- 检查当前环境里是否混装了多个 PyTorch 版本,建议先卸载干净再重装。
- 在 PyTorch 官网上重新生成安装命令,对比自己安装的版本是否一致。
这里要注意,重装之前先清理:
conda list | grep torch pip list | grep torch把残留的 torch 相关包卸载干净,再执行安装,能避免很多版本冲突。
7.5 CPU 版训练速度极慢
CPU 版训练慢是正常的,不要一开始就怀疑环境坏了。可以先跑一个小模型,统计单轮耗时。如果单轮耗时合理,说明环境没问题,只是计算资源有限。降低输入分辨率、减小 batch size、减少网络层数,都是实际可用的缓解手段。
8. 环境搭建之后,更该养成的几个习惯
8.1 不要所有项目共用同一个环境
环境隔离是 Anaconda 最该利用起来的能力。我建议每个正式项目建一个独立环境,环境命名用项目缩写,比如 dl_study、demo_project。
好处是当某个项目依赖被改坏时,直接新建一个环境就行,不用连累其他项目。尤其是同时使用 PyTorch 和 TensorFlow、或者需要不同 CUDA 版本时,环境隔离能省掉大量冲突处理时间。
8.2 用配置文件固定依赖版本
环境运行一段时间后,包版本可能因为升级而改变。为了让项目可复现,建议把依赖版本记录下来。
conda 环境导出:
conda env export > environment.yml或者导出 pip 依赖:
pip freeze > requirements.txt换电脑、换同事、换服务器时,用环境文件就能把依赖一键恢复。这个习惯比“把所有包重装一遍”可靠得多。
8.3 什么时候该重装环境
环境出问题时,每个人都会纠结:是修,还是重装。
我个人的判断标准是:
- 如果是单个包的版本问题,先尝试修复。
- 如果发现 conda 环境里的依赖已经乱到无法理清,比如升级了很多次包、pip 和 conda 混装了大量库,推荐直接重建环境。
- 如果只是想验证某个 PyTorch 版本能不能运行,新建一个临时环境,用完删掉。
创建临时环境:
conda create -n test_torch python=3.10 conda activate test_torch删除不需要的环境:
conda deactivate conda remove -n test_torch --all8.4 新手最终应该记住的判断标准
环境搭建这件事,真正重要的不是记住每条命令,而是掌握判断标准。
安装完 Anaconda,验证 conda 能否执行。 创建环境,验证 conda activate 能否切换。 安装 PyTorch,验证 import torch 能否成功。 使用 GPU,验证 torch.cuda.is_available() 是否为 True。 编辑器写代码,验证解释器是否为当前 conda 环境。 训练开始后,验证 loss 是否正常下降。
把这几条链路走一遍,当系统提示某个环节出问题时,你就知道该查哪里了。我踩过不少次坑,现在回头看,大多数问题都不是机器配置不够,而是安装顺序、版本匹配和解释器选择没有做好。配置好环境之后,再把心思放到模型和数据上,效率会高很多。