资讯动态

conda虚拟环境与PyTorch CPU版安装:深度学习环境配置实操指南

发布时间:2026/9/10 7:11:31 来源:尧图企业网站定制
刚接触 PyTorch 和深度学习的时候我猜绝大多数人都不是被模型结构劝退的而是被开发环境的配置问题卡到怀疑人生。Python 版本不对、包冲突、装好的 PyTorch 用不了 CUDA、电脑是集显不知道怎么选安装命令……这些坑我当年是一个没落下全踩过。所以这篇笔记我打算把“Python 环境管理”这件事一次性讲透包含集显电脑安装 PyTorch 的完整实操流程适合零基础的深度学习入门者、被环境配置折磨的初学者以及想系统捋一遍 conda 用法的朋友。先说结论深度学习项目开发环境管理的基本功比模型调参更影响学习效率。一个干净可控的 Python 环境能让你在复现项目、切换 PyTorch 版本、跑通别人的开源代码时省下大量的时间。这篇文章不整虚的从最底层的 Python 和 conda 的关系讲起再一步步带你建好虚拟环境、装好 CPU 版 PyTorch最后还会附上我实际踩过的坑和一些排查技巧。1. 环境管理为什么是深度学习的“第一道门槛”1.1 版本冲突的本质一个 Python 解释器装不下整个世界很多人第一次用 pip install 装包的时候都会遇到一个非常经典的问题今天为了项目 A 装了 TensorFlow明天为了项目 B 装了 PyTorch结果项目 A 突然跑不起来了。原因很简单不同框架依赖的 NumPy、SciPy 甚至 Python 解释器的版本不同而这些包都安装在同一个全局环境里相互之间会互相覆盖依赖。深度学习领域的版本敏感程度比普通 Web 开发高得多。比如 PyTorch 1.x 和 2.x 之间、PyTorch 和 CUDA 版本之间都有严格的对齐要求。一个训练脚本在 PyTorch 2.1 上正常换到 1.13 可能直接报错因为很多 API 的行为变了。如果你把所有的包都塞在同一个环境里环境被搞坏只是时间问题。虚拟环境就是解决这个痛点的标准方案。你可以把虚拟环境理解成一个独立的“小房间”每个房间里有自己的一套 Python 解释器和第三方库房间和房间之间完全隔离。项目 A 用 Python 3.9 PyTorch 2.1项目 B 用 Python 3.11 PyTorch 2.5完全互不干扰。这才是深度学习开发的正常打开方式。1.2 管理工具选型Anaconda、Miniconda、venv 与 Docker 的取舍目前主流的 Python 环境管理工具主要有四个Anaconda、Miniconda、Python 自带的 venv、以及 Docker。网上很多教程一上来就让人装 Anaconda但其实它们各有利弊我简单梳理一下。Anaconda 是一个打包好的 Python 发行版内置了 conda 包管理器和几百个常用科学计算包安装完基本开箱即用。缺点是体积太大安装包按 GB 计算对新手来说还会遇到默认装在基础环境里、导致环境混乱的问题。Miniconda 是 Anaconda 的精简版只保留 conda 和 Python需要什么包装什么包。体积小、思路清晰我个人强烈推荐新手用 Miniconda 起步。因为深度学习本来就需要按项目精确控制依赖Anaconda 自带的那些包反而容易造成干扰。venv 是 Python 官方自带的虚拟环境工具轻量级但它不管理 Python 解释器本身的版本。如果你想在项目里用 Python 3.9而系统默认是 3.11用 venv 就得先手动安装对应版本的 Python比较麻烦。Docker 则把整个环境打包成容器镜像隔离最彻底但学习成本高Windows 上还需要启用 WSL2 或 Hyper-V对入门阶段来说属于“杀鸡用牛刀”。综合来看新手路径推荐是Miniconda conda 创建虚拟环境。conda 既能管理 Python 版本又能管理第三方包一条命令搞定环境切换。这套方案也是小土堆系列课程一直强调的基础工作流。2. Python 环境管理保姆级实操流程2.1 安装 Miniconda而不是 Anaconda先到官网下载 Miniconda 安装包选择 Windows 64 位版本即可。官网的下载地址是 repo.anaconda.com如果访问比较慢可以找国内镜像站的安装包路径一般类似清华 tuna 镜像的 miniconda 目录。下载完成后双击安装安装过程中有两个关键选项需要特别注意第一个是 “Install for” 选择建议选 “Just Me”不要选 “All Users”。选 All Users 在某些 Windows 系统上会需要管理员权限而且容易导致安装路径过长、后续命令行找不到 conda 的问题。第二个是安装到最后一步安装器会问你要不要把 conda 添加到 PATH 环境变量官方默认是不勾选的但这里我建议勾上。不过要注意如果电脑上已经有其他 Python 发行版勾选后可能会出现命令行里 python 指向不一致的情况这个在后面的排查部分我会详细讲。安装完成后打开命令提示符cmd 或者 PowerShell输入 conda --version如果能正常显示 conda 版本号说明安装成功。如果提示“不是内部或外部命令”大概率是 PATH 没生效重新打开终端或者手动把 conda 的 Scripts 目录加到系统环境变量里。2.2 配置国内镜像源下载速度飞起来这一步属于没人提醒你绝对会踩的坑。conda 默认的下载源在国外服务器在国内网络环境下安装一个稍微大点的包可能要等很久甚至经常连接中断。解决办法是配置清华大学的 conda 镜像源。在命令行依次执行以下命令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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes配置完成后建议执行 conda config --show channels 检查一下源是否生效。这里要说一句清华源确实快但 PyTorch 官方源也就是 cloud/pytorch 这个 channel有时候同步不完全尤其是最新版本发布后的头几天可能出现从清华源找不到对应包的情况。这时候临时用官方源执行安装速度慢点但稳定性有保证。还有一个细节如果要用 conda 安装 PyTorch 的 GPU 版我会建议直接走 PyTorch 官方给出的命令或者换成阿里云的镜像源。至于具体原因涉及 NVIDIA 的 CUDA 包体积巨大清华源同步压力大经常不完整。2.3 创建独立的深度学习虚拟环境环境管理的第一条准则永远不要把你的项目包装在 conda 的基础环境base里。基础环境相当于一个底层的系统环境万一被依赖冲突搞崩了所有项目都得跟着遭殃。正确的做法是为每个深度学习项目创建一个独立环境。下面这条命令是我最常用的创建一个名为 deeplearning、指定 Python 版本为 3.10 的虚拟环境conda create -n deeplearning python3.10 -y千万别小看 python3.10 这个参数它可以让 conda 自动寻找系统中的 Python 3.10 解释器并绑定到这个环境里省去手动安装 Python 的步骤。这也是 conda 相比 venv 的核心优势之一。创建完成后激活环境conda activate deeplearning激活成功后命令行前面会多出一个 (deeplearning) 的前缀说明你当前正身处这个虚拟环境。以后每次打开终端想跑项目第一件事就是 conda activate 那个环境名字否则你在 base 环境里装再多包切到 deeplearning 环境后统统用不了。进入环境后输入 python --version 检查一下解释器版本确认是我们刚才指定的 3.10。这个版本号要记牢因为后面装 PyTorch 时官方要求 Python 版本在 3.9 到 3.12 之间3.10 是比较稳妥的中间选择兼容性最好。2.4 conda 常用命令速查与操作逻辑掌握了创建和激活环境之后剩下几个 conda 高频命令也要顺手学会做个速查表方便大家随时翻阅。操作命令说明查看所有环境conda env list列出当前所有虚拟环境当前所在环境标有星号激活环境conda activate 环境名切换到指定环境退出环境conda deactivate回到 base 环境安装包conda install 包名在激活的环境内安装包卸载包conda remove 包名移除指定包删除环境conda env remove -n 环境名删除整个虚拟环境连带所有包导出环境配置conda env export environment.yml把当前环境依赖导出为 YAML 文件基于文件重建环境conda env create -f environment.yml从 YAML 文件还原环境这些命令背后的逻辑本质上就是“一个环境 一个依赖快照”。你把 environment.yml 文件发给别人他可以在一分钟之内复现出跟你完全一致的环境这对学术项目合作和开源代码复现来说极其重要。3. 集显电脑安装 PyTorchCPU 版完整实操3.1 先搞清楚你的电脑到底能不能用 GPU很多新手的误区是只要装上了 PyTorch代码里写了 .cuda() 就能用显卡训练。实际上PyTorch 是否能用 GPU取决于你有没有一块支持 CUDA 的 NVIDIA 独立显卡以及是否正确安装了对应 CUDA 版本的 PyTorch。如果你的电脑没有 NVIDIA 独显只有 Intel 核显或者 AMD 核显那么很遗憾PyTorch 在这个环境下完全无法使用 CUDA 加速。AMD 显卡理论上可以通过 ROCm 支持 PyTorch但 Windows 下的 ROCm 支持始终不成熟配置极其痛苦我不建议新手这样折腾。Intel 核显也有 OpenAPI 之类的实验性方案但坑非常多。所以集显电脑最稳妥的路径就是安装 CPU 版本的 PyTorch。有人可能会问CPU 版跑不了大模型吧确实跑不了大型训练任务但用来学习深度学习基础、跑完小土堆系列里的案例、练习图像分类、线性回归这类入门项目CPU 版的性能完全够用。等真正掌握了 PyTorch 的基本操作再考虑入手带 NVIDIA 独显的电脑或者租用云 GPU这是投入产出比最高的路线。怎么确认自己电脑有没有 NVIDIA 独显在 Windows 的任务管理器 - 性能页面左侧会列出所有的 GPU。如果看到 GPU 1、GPU 2 这样的条目并且名字里有 NVIDIA 字样说明你的电脑有 NVIDIA 独显如果只有一个“Intel UHD Graphics”或者“AMD Radeon Graphics”那基本可以断定只有核显。3.2 CPU 版 PyTorch 安装命令与逐项解析确定是集显电脑后进入 PyTorch 官网去获取安装命令。官网上有一个选择界面让你选 PyTorch Build、Your OS、Package、Language、Compute Platform。重点来了Compute Platform 这一栏集显电脑直接选 CPU其他选项不用管。此时官网会生成一条安装命令CPU 版本在 Linux 和 Windows 下用 conda 安装的典型命令是conda install pytorch torchvision torchaudio cpuonly -c pytorch这条命令里有三个核心包pytorch 是主框架torchvision 是处理图像和数据集相关的扩展库torchaudio 是音频处理扩展库。对于纯深度学习入门torchaudio 可以暂时不装但建议一次装齐因为后面做语音相关项目会用到。cpuonly 是一个特殊的标志包告诉 conda 只安装 CPU 版本的 PyTorch不拉取任何 CUDA 相关依赖。这也是集显安装和 N 卡安装最关键的区别点拿 GPU 版的命令往集显电脑上安装大概率会安装失败或者即使装上了也无法发挥任何加速作用。执行安装命令时conda 可能需要花几分钟时间解析依赖关系。这里有个细节要提醒大家conda 的依赖解析速度很慢有时候看起来像卡住了其实是它在计算各个包的兼容版本。安装过程中如果长时间卡在 “Solving environment” 阶段可以这样缓解把默认的 solver 从 classic 换成 libmamba。具体命令如下conda install -n base conda-libmamba-solver conda config --set solver libmamba这是一个优化过的依赖解析器实测可以让 conda 的解析时间缩短好几倍。如果你想完全避开 conda 的解析过程也可以直接用 pip 安装 CPU 版pip install torch torchvision torchaudiopip 默认会从 PyPI 拉取与当前平台匹配的包Windows 集显环境下会自动安装 CPU 版。不过 pip 安装的包和 conda 管理的包虽然在同一个环境里它们在包管理器层面是两套体系可能发生依赖覆盖所以除非项目文档明确要求我一般优先用 conda。3.3 验证安装是否成功的五步检查法安装完成并不代表万事大吉。我见过太多人装完之后运行代码报 ModuleNotFoundError 或者 ImportError然后不知所措。验证环境是否正常的方法其实很简单按下面的步骤逐条检查第一步确认环境激活。在命令行输入 conda activate deeplearning确保环境前缀存在。第二步进入 Python 交互环境python第三步导入 torch 并打印版本号import torch print(torch.__version__)如果能打印出类似 2.5.1 这样的版本号说明 PyTorch 导入成功。第四步查看 CUDA 可用状态print(torch.cuda.is_available())集显电脑上这里返回 False 是正常的不要慌这正是 CPU 版的预期表现。第五步启动 Jupyter Notebook确认内核能正常导入 torchjupyter notebook然后在新建的 Notebook 里执行 import torch。小土堆系列的笔记之后会大量使用 Jupyter Notebook 进行演示所以这一步尽量提前配好。如果直接执行 jupyter notebook 提示未找到命令先在环境里执行一下conda install jupyter或者装一个类似 jupyterlab 的现代版本。3.4 NVIDIA 独显用户的分支GPU 版安装速览虽然这篇文章的主角是集显但如果你恰好有一台带 NVIDIA 独显的电脑在这里简单交代一下 GPU 版安装的流程方便以后换电脑时有个思路参考。GPU 版安装命令通常长这样conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia这里的关键参数是 pytorch-cudan 版本它决定了 PyTorch 编译链接的 CUDA 版本。不要理解成“安装 CUDA 12.1 这个软件”而是理解为“安装一个依赖 CUDA 12.1 运行库的 PyTorch”。所以你没有手动安装 CUDA Toolkit 也没关系这个命令会拉取对应版本的 CUDA 运行库跟系统的其他软件不冲突。选版本有个简单原则直接看 PyTorch 官网当前推荐哪个 CUDA 版本用官方推荐的就好。通常较新的 PyTorch 版本会随附一个稳定版本的 CUDA两者已经绑定了。装完 GPU 版后验证命令有点不一样。需要额外执行print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))如果第一行输出 True第二行输出你的显卡型号比如 “NVIDIA GeForce RTX 3060”说明 GPU 环境完美可用。这里有一个常见的坑有些集显加独显的双显卡笔记本PyTorch 默认会使用 NVIDIA 独显不会使用集显不用担心。如果两个输出都不正常大概率是显卡驱动太老更新驱动后再试。4. 安装过程典型问题与排查思路4.1 conda 下载速度慢、卡在 Solving environment 的主流解法无数人私信问过我同一个问题安装 PyTorch 的时候下载速度特别慢用手机开热点也一样怎么办。下载速度慢的第一个解决思路就是 2.2 小节里提到的配置国内镜像源。配置完成后 conda 会优先从清华源拉取包下载速度能提升几十倍。但要注意镜像源对 PyTorch 官方 channel 里的包支持不一定完整如果从清华源找不到某个包可以在命令行加上 -c pytorch 强制从官方源下载该包conda install pytorch torchvision torchaudio cpuonly -c pytorch第二个解决思路是换 pip 源。如果 conda 怎么都不顺可以放弃 conda 安装改用 pip并把 pip 的默认源换成清华 PyPI 镜像pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple这条命令对国内网络非常友好PyPI 的清华镜像同步速度很快torch 的 CPU 包大约 200MB 左右正常网速下几分钟就下完了。至于卡在 Solving environment 的问题前面已经提过升级 conda 的 solver 到 libmamba 就可以大幅缓解这里不再重复。4.2 import torch 报错的各种典型场景常见报错一ModuleNotFoundError: No module named torch。这种报错基本可以断定你当前激活的环境和你安装 PyTorch 的环境不一致。检查一下命令行前面的环境名然后重新激活环境再执行 import torch。常见报错二DLL load failed while importing torch。Windows 上经常出现原因是缺少必要的系统运行库常见的是 Microsoft Visual C Redistributable 未安装。去微软官网下载最新的 VC_redist.x64.exe 安装即可。常见报错三cuDNN 相关报错。集显 CPU 版理论上不会出现如果出现说明你可能误装成了 GPU 版。用 conda list 查看当前环境里有没有 cuda 相关的包有的话直接卸掉重装 CPU 版。4.3 Python 不同版本兼容性的选择建议PyTorch 对 Python 版本的支持有明确范围一般建议使用 3.9 到 3.12。我自己的习惯是 Python 3.10因为它在当前生态中兼容性最好几乎所有的深度学习库都对其提供了完善支持。Python 3.12 因为引入了一些 C 扩展 API 的变化部分老库的预编译包可能还没有及时跟进用的人还偏少。在安装时如果你不指定版本conda 可能会为新环境选择最新的 Python这在某些极端情况下会导致 PyTorch 找不到对应包。所以创建环境时一定要显式指定 python3.10把不确定性扼杀在摇篮里。再提醒一下Windows 系统下Python 的 32 位版本和 64 位版本也有可能造成兼容性问题。Miniconda 默认安装的是 64 位版本这个不要随意改动。4.4 PyTorch 2.6 的一个新变化weights_only 参数提醒PyTorch 2.6 发布之后官方把 torch.load 函数的 weights_only 参数的默认值从 False 改成了 True。这个变化的意思是当你直接用 torch.load 加载一个没有经过特殊保护的模型文件时可能会遇到类似 “WeightsUnpickler error” 的报错。这算不上 bug而是官方出于安全考虑的变更。因为旧的 pickle 反序列化机制存在任意代码执行的风险收到恶意模型文件时可能被攻击。入门阶段如果突然遇到模型加载报错的情况可以先用官方推荐的写法torch.load(model.pth, weights_onlyTrue)如果模型文件是在旧版本 PyTorch 下保存的可能需要用 weights_onlyFalse 来强制加载但前提是你信任这个模型的来源。这个知识点在后续学习模型保存和加载时会反复遇到提前打个预防针。5. 环境管理进阶多项目协同与重建5.1 用 environment.yml 实现一键复现在实际的深度学习项目中团队协作是常态。别人跑通了某个项目你要在自己的机器上复现。这时候一份 environment.yml 文件比你手动安装一百个包管用得多。在已经激活的环境里执行conda env export environment.ymlconda 会把当前环境里所有包的名称、版本号、来源渠道全部写入这个 YAML 文件。其他人在拿到这个文件后只需要conda env create -f environment.yml就可以一键生成一个完全相同的环境。不过这里有个坑要注意conda env export 导出的文件里包含了你本机的特定路径比如挂载在某个盘符下的包名直接换电脑使用可能报错。更稳妥的做法是用 conda env export --from-history这样只导出你手动执行过 conda install 的命令那些依赖的传递性包不会记录进去可移植性更好。5.2 Anaconda 目录结构解析与 PATH 环境变量新手对 conda 的目录结构一头雾水不知道自己装的东西到底去了哪里。理解目录能帮助你排查一些奇怪的错误。典型的 Anaconda 安装目录结构如下Anaconda3/ ├── python.exe # base 环境对应的 Python ├── conda.exe # conda 命令行工具 ├── envs/ # 所有虚拟环境所在目录 │ ├── deeplearning/ # deeplearning 环境的根目录 │ │ ├── python.exe # 该环境对应的 Python │ │ └── Lib/site-packages/ # 该环境下的第三方库 ├── Lib/site-packages/ # base 环境的第三方库看到这里你应该明白了每个虚拟环境本质上就是一个独立的 Python 可执行文件加一个独立的 site-packages 目录。当你激活环境时命令行使用的 python 命令就不再是系统全局的那个而是指向 envs/deeplearning/python.exe。PATH 环境变量的作用就是决定当你输入 conda 或 python 时系统去哪个目录找可执行文件。如果你之前手动安装过 Python 并加入了 PATH而 conda 的路径排在后面就有可能出现“明明 conda 里装了 PyTorch但 python 命令跑的是另一个解释器”的混乱。排查方法很简单在命令行输入where python看到的结果第一行就是你当前真正执行的 python 所在路径。如果它指向 conda 环境目录一切正常如果指向别的地方说明 PATH 顺序有问题需要手动调整。5.3 Jupyter Notebook 内核绑定与多环境切换很多人的习惯是打开 Jupyter Notebook 写代码但会遇到一个问题启动 Jupyter 后在 Notebook 里 import torch 报错但命令行里明明可以正常导入。的原因很直接——启动 Jupyter 的时候用的是 base 环境下的 Jupyter它默认运行的是 base 环境的内核而不是你深度学习的虚拟环境。解决办法是在虚拟环境里安装 ipykernel并把环境注册为 Jupyter 的内核conda activate deeplearning conda install ipykernel python -m ipykernel install --user --name deeplearning --display-name Python (deeplearning)之后启动 Jupyter Notebook在“新建”下拉菜单里就能看到 “Python (deeplearning)” 这个选项选中它运行的代码就会落在你的虚拟环境里。如果你有多个环境可以都注册进去然后在 Notebook 里的 “Kernel - Change Kernel” 随时切换非常方便。这是小土堆系列笔记的基础前提环境彻底理顺了之后的代码才能跑得顺畅。这套流程不仅适用于 PyTorch之后你接触 TensorFlow、PaddlePaddle 或者任何深度学习项目都逃不开同样的模式。5.4 双环境实践的提醒不要污染 base 环境最后说一个我见过无数人犯的错。很多初学者图省事直接在 base 环境里 pip install torch装完后 pytorch 也确实能跑就懒得建环境了。但这样做的后果是下次你需要装另一个项目比如某个 GitHub 开源代码依赖 PyTorch 1.13而你 base 里已经是 PyTorch 2.5你只能把 2.5 卸了重装。反复折腾几次之后base 环境里留下的垃圾包越来越多最后只能重装 Anaconda。我的建议是把 base 环境当成一个干净的控制台只放 conda、python、jupyter 这类基础工具所有项目依赖一律建独立环境。虽然初期看起来多了一个“激活环境”的步骤但长远来看它会让你在多个项目之间切换时一点负担都没有。真的环境整洁程度决定了你到底能走多远。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价