news 2026/10/15 1:19:50

深度学习环境配置详解:Anaconda与PyTorch、PyCharm集成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习环境配置详解:Anaconda与PyTorch、PyCharm集成

1. 别急着装:先把整套方案的逻辑理清楚

我在帮不少人处理深度学习环境的时候,发现大家最容易卡住的点,不是代码本身,而是环境配置这一步:Anaconda装好了,PyTorch死活跑不起来;PyCharm里明明选了Python解释器,却提示找不到Torch。所以这篇文章不打算只扔几条安装命令,而是把整个流程背后的逻辑讲清楚,照着做基本一次能过。

先说明这套组合解决什么问题。Anaconda是Python发行版加包管理器,它自带conda命令,能创建相互隔离的Python环境;PyTorch是目前最主流的深度学习框架之一;PyCharm是日常写Python代码的IDE。三者的关系可以这么理解:Anaconda负责管环境和基础包,PyTorch负责提供深度学习能力,PyCharm负责让你写代码、调试、跑脚本。而我们最终的目标,是让一个干净、可复现的环境中,同时存在指定版本的Python和PyTorch,并且能被PyCharm正确识别和调用。

这套配置适合谁?刚接触深度学习的学生、想在自己电脑上跑模型的研究人员,也包括只是想试试PyTorch却不想搞乱系统Python环境的朋友。只要你的机器能装Anaconda,Windows、macOS还是Linux都没问题,步骤差异会在后面单独说明。

很多人习惯直接在base环境里pip install torch,图省事。但实际项目一多就会踩坑:项目A需要PyTorch 1.x,项目B需要2.x,版本互相冲突,卸载重装搞得焦头烂额。所以从一开始就养成用conda虚拟环境的习惯,才是省时间的根本。这也是“创建新的环境”这一动作存在的意义。接下来,我们按“装Anaconda → 建环境 → 装PyTorch → 配PyCharm”这条主线逐个击破。

2. 从零开始:Anaconda安装与环境准备

2.1 下载与安装要点

Anaconda的安装包可以直接从官方站点下载,尽量选择最新版本,不要选太老的。Windows用户注意,安装包是.exe,macOS用户有图形安装包和命令行安装包两种,Linux用户拿到的是.sh脚本。

安装过程中有两个关键选项,我强烈建议你认真看:

  • 安装路径不要包含中文和空格。很多同学图省事,装到D:\软件\Anaconda3,后面创建环境时各种诡异报错,根本原因就是路径里的中文导致编码问题。推荐装到纯英文路径,比如D:\Anaconda3或C:\Users\你的用户名\anaconda3。
  • 是否加入PATH环境变量。安装界面会问你是否把Anaconda加入PATH,默认是不勾选,只注册到Anaconda Prompt。这里我的建议是:Windows用户不要直接勾选加入PATH,而是使用Anaconda Prompt或安装完成后用conda init命令初始化。原因在于,直接加入PATH会让系统Python和conda的Python产生优先级冲突,以后命令行里运行python到底调谁都没法保证,排查起来特别麻烦。

2.2 验证安装与基础配置

装完后,打开Anaconda Prompt(Windows)或终端(macOS/Linux),输入conda --version,能输出版本号就说明安装成功。接着执行conda init,它会把conda初始化代码写入shell配置文件,这样以后在系统终端里也能直接用conda命令。Windows如果没有特殊需求,直接用Anaconda Prompt即可。

然后建议先更新一次conda本身:

conda update -n base conda

有些时候更新会耗时较长,如果当前版本够用,也可以跳过。但为了保证后续包索引正常,至少执行一次。

关于下载慢的问题,这里提一个常规做法:更换conda的国内镜像源。操作方式是写入配置文件.condarc,或者执行类似这样的命令(以常见镜像站为例):

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

需要说明的是,镜像源地址可能随时间变化,以对应镜像站当前提供的有效地址为准。更换镜像后,创建环境和安装包的速度会有明显提升。

2.3 认识base环境

安装完成后,默认的Python环境叫base。这里要提醒一句:不要把base环境当成工作环境。base环境相当于系统的“初始系统”,你后续创建的任何环境都依赖它。如果在base里乱装包,不说版本冲突,光是包数量膨胀、依赖关系复杂,就能让你后面寸步难行。正确的做法是:base只做基础维护,所有实际项目都放到独立环境里。

我自己见过最多的问题,就是有人直接在base里运行:

conda install pytorch torchvision -c pytorch

然后用了半年,突然发现conda update --all时把PyTorch相关的某个底层库升级坏了。虽然最终也能修,但浪费的时间够重新建三次环境了。所以从现在开始,每次做项目先conda create,形成肌肉记忆。

3. 创建独立环境:conda环境管理与Python版本选择

3.1 为什么一定要新建环境

你可能会想:我直接装PyTorch不就好了,为什么要先建环境?因为PyTorch对Python版本、底层库版本都有特定要求,而你的电脑上可能还有别的项目依赖某个固定版本的Python。如果所有包都挤在一个环境里,A项目要升包,B项目就会被破坏。虚拟环境的本质就是隔离,让每个项目拥有独立的依赖空间,互不干扰。

说的直白一点,conda环境就像一个一个独立的房间,每个房间有自己的一套家具和布局,不会因为隔壁房间换了一张桌子而受影响。而base环境是走廊,我们只是站在走廊上进入某个房间,尽量不堆放杂物在里面。

3.2 创建环境的具体命令

打开终端,执行:

conda create -n pytorch python=3.9

这里的pytorch是环境名称,可以自定义,建议用项目名或框架名,比如torch_env、dl_project都行。python=3.9指定Python版本,如果你想用3.8、3.10,直接改数字即可。

创建过程中会提示安装一些基础包,输入y确认。完成后,激活环境:

conda activate pytorch

看到命令行前缀变成(pytorch),就说明你已经进入这个环境了。这时候再执行python --version,会看到对应的版本号,比如Python 3.9.x。

其他常用命令一并列出来:

conda env list # 查看所有环境 conda deactivate # 退出当前环境 conda remove -n pytorch --all # 删除环境 conda env remove -n pytorch # 同样删除环境

3.3 如何选择Python版本

选择Python版本不是随便拍的,要看PyTorch官方支持哪些版本。PyTorch的安装页上会标注当前版本支持的Python范围,比如常见的PyTorch 2.x支持Python 3.8到3.12左右。一般建议选择3.9或3.10,这两个版本稳定性高,兼容的第三方库也多。如果一定要用最新的Python 3.13,需要先确认PyTorch是否发布了对应的构建版本,不要盲目追新。

同样,如果你需要跑某个特定项目,比如某些老项目依赖Python 3.7,那就单独建一个python=3.7的环境。这也是conda比pip直接装更灵活的地方:可以同时存在多个不同Python版本的环境,按项目切换。

3.4 环境管理的几个实战技巧

  • 环境名最好和项目绑定,比如pytorch2、tf115,一眼能看出用途。
  • 创建环境后,立刻执行conda env export > environment.yml导出依赖清单,将来换机器可以一键重建。
  • 如果创建环境时提示CondaHTTPError或SSL错误,多半是镜像配置问题。可以先恢复默认源,再重新添加正确地址。
  • 不要频繁创建又删除环境,每次操作都会扫描包索引,浪费时间。尽量提前规划好。

我自己有个习惯:建环境时只指定python=3.9,不一次性装一堆包。这样做的好处是,可以先确认干净环境没问题,然后再逐步安装PyTorch、PyCharm的包依赖,出问题也容易定位。

4. 安装PyTorch:CPU版与GPU版的关键决策

4.1 先搞清楚你的机器有没有可用GPU

安装PyTorch前,先确定一件事:你用CPU跑,还是用GPU跑?如果只是学习、跑一些小型模型,CPU版完全够用;如果要做模型训练,尤其是图像、大模型相关,强烈建议用GPU版。

GPU版安装前需要确认三个条件:NVIDIA显卡、合适的显卡驱动、CUDA版本。

在Windows上,打开命令行,执行:

nvidia-smi

如果显示一张显卡信息表,说明驱动已装好,顶部能看到CUDA Version。这里要特别注意:nvidia-smi显示的CUDA版本是驱动支持的最高CUDA版本,不一定是你要装的那个CUDA toolkit版本。PyTorch官网安装命令中标注的CUDA版本,比如cu118表示CUDA 11.8,cu121表示CUDA 12.1。只要你的驱动最高支持版本大于等于这个版本号,就能正常用。

如果执行nvidia-smi提示“不是内部或外部命令”,说明驱动没装好或者没有NVIDIA显卡。这种情况下可以直接走CPU版安装,不要折腾GPU。

macOS用户需要注意,Apple Silicon芯片的机器要用PyTorch的MPS加速,安装命令与CPU版类似,但通常还需要额外的渠道。这里不做细说,建议去PyTorch官网查当前推荐命令。

4.2 CPU版安装命令

CPU版安装最简单,在已经激活的环境里执行:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

注意这里用了--index-url,意思是强制从PyTorch官方CPU版本源下载。如果直接用pip install torch,默认从PyPI下载,在某些情况下得到的版本可能包含CUDA依赖,体积很大但实际没用GPU,白白占硬盘空间。所以安装CPU版时,建议加上这个参数。

网上也有用conda install pytorch torchvision torchaudio cpuonly -c pytorch的方式,也可以,但conda源有时候会比较老,pip反而更直接。二选一即可。

4.3 GPU版安装命令

GPU版安装有两种常见方式:conda和pip。

先说conda方式。在激活的环境里执行(假设你的驱动支持CUDA 11.8):

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

这种方式会把CUDA、cudnn等配套库都通过conda安装管理,依赖兼容性较好,但下载体积很大,而且conda解析依赖的时间漫长,有时候等十分钟还没开始下载。优点是稳定,适合不想折腾依赖关系的人。

再说pip方式。PyTorch官方提供了配置好的源,你只需要根据CUDA版本选择命令,例如:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

这里的cu118是对应CUDA 11.8的版本。如果你驱动支持CUDA 12.1,就把cu118换成cu121。具体以PyTorch官网当前推荐命令为准,因为版本号会更新。

我个人更倾向用pip方式装GPU版。原因有三个:第一,pip下载速度快,不会长时间卡在依赖解析;第二,PyTorch官方通过pip发布的wheel包已经把所有运行库都打进去了,不需要额外装CUDA toolkit;第三,如果你有虚拟环境,pip不会污染全局环境。只要保证显卡驱动版本足够新,基本一次就能装对。

4.4 安装后验证是否成功

不管装的是CPU还是GPU版,都要做一次完整验证。在环境里执行:

python

进入交互环境后,依次输入:

import torch print(torch.__version__) print(torch.cuda.is_available())

如果torch.__version__能打印版本号,说明PyTorch安装成功。然后重点看torch.cuda.is_available():

  • 输入True,说明GPU版可用,接下来就可以调用GPU训练模型了。
  • 输入False,说明当前安装的是CPU版,或者GPU环境没被PyTorch识别到。先确认是否装了GPU版的wheel包,再看驱动和CUDA版本是否匹配。

另外还可以查看GPU设备信息和算力:

print(torch.cuda.device_count()) print(torch.cuda.get_device_name(0))

如果输出显卡型号,说明PyTorch能够正常访问GPU。

这里有个常见的坑:如果你安装了GPU版,但torch.cuda.is_available()返回False,大概率是驱动版本太旧,或者你的机器混装了多个CUDA相关的库。解决方法很简单:先把驱动升级到官方最新版,然后再试。不要贸然重装PyTorch。

4.5 CPU版和GPU版的差距

CPU版和GPU版在代码层面几乎没有区别,唯一的差别就是设备调用。日常调试代码,CPU版足够;真正训练,GPU快很多。你可以在同一份代码里用条件判断来自动选择设备:

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

这样即使换了一台没有GPU的机器,代码也能正常跑,只是速度慢一些。这个写法是深度学习项目里最常见的设备选择模板。

5. 配置PyCharm:让代码跑在刚创建的环境上

5.1 安装PyCharm

PyCharm分社区版(Community)和专业版(Professional),社区版免费,对Python开发足够用了。深度学习项目不涉及远程开发的话,社区版完全够用。下载地址就是JetBrains官网,安装时一路下一步即可,注意安装路径同样不要有中文。

5.2 在PyCharm中配置conda环境

打开PyCharm,新建一个项目(注意项目路径也不要带中文)。进入File → Settings → Project → Python Interpreter,点击右上角的Add Interpreter,在下拉列表里选择Conda Environment。

接下来的关键是选择“Existing environment”,也就是已有环境,而不是“Create new”。为什么?因为我们已经手动创建了pytorch环境,直接让它关联到这个环境就行。然后点击...按钮,找到之前创建的pytorch环境中的python.exe文件。

具体路径通常在Anaconda安装目录\envs\pytorch\python.exe。例如:

D:\Anaconda3\envs\pytorch\python.exe

选中后,PyCharm会加载这个解释器,并显示环境里已安装的包列表。如果你发现列表里有torch,说明PyCharm已经关联到正确的环境。

点击OK后,PyCharm下方会出现正在解释器更新的进度条。完成后,新建一个Python文件,输入:

import torch print(torch.__version__)

点击运行按钮,如果控制台输出版本号,说明PyCharm已经成功使用上了你配置的环境。

5.3 PyCharm终端与conda环境的互通

有人会遇到一种情况:PyCharm里代码运行正常,但打开PyCharm自带的Terminal,输入conda activate pytorch却没反应。这是因为PyCharm的Terminal默认加载的是系统Shell,没有初始化conda。

解决办法是在PyCharm的Settings里,找到Tools → Terminal,确认Shell路径指向系统默认的Shell类型。然后手动在Terminal里执行:

conda activate pytorch

如果还是不行,就在Terminal里先执行:

conda init

重新加载Shell配置后,再激活环境。对于Windows,建议把PyCharm的Terminal改造成使用Anaconda Prompt作为Shell,具体方式是在Terminal的Shell path处填入Anaconda Prompt的启动脚本路径。不过这种操作在不同版本里差异较大,最简单的做法还是:主力写代码时,用PyCharm里的Python解释器指向conda环境;需要跑命令行工具时,用独立的Anaconda Prompt执行,两边互不干扰。

5.4 项目级解释器的选择建议

在多项目场景下,每个项目都应单独指定解释器。PyCharm允许每个项目绑定不同的conda环境,项目A绑定pytorch,项目B绑定tf,互不影响。新建项目时,在解释器设置里选好就行。这点特别适合同时学习多个框架的人,换项目时不用反复卸载重装包。

一个容易被忽略的坑是:用PyCharm打开旧项目时,它可能会自动复用当前默认解释器,结果import torch失败。所以你新建项目或打开已有项目后,第一件事就是检查Python Interpreter到底是指向哪个环境。这个习惯能帮你省下大量排查时间。

6. 常见问题与排查经验实录

6.1 安装过程中最常见的报错

把这两年大家遇到比较多的报错整理成一张表,方便按图索骥:

现象可能原因解决办法
conda命令找不到conda未初始化在Anaconda Prompt里执行conda init,或把conda安装路径放入PATH
创建环境一直卡住网络波动或镜像源失效换一个可用镜像源,或者用手机热点试一次
pip install torch很慢默认PyPI源慢临时指定PyTorch官方源,见上文命令
import torch报错,提示找不到指定模块环境没激活,或者pip装到了别的环境先conda activate pytorch,再用pip list确认包在哪个环境
torch.cuda.is_available()为False装的是CPU版,或驱动版本过旧确认安装命令是否带cu118等参数;更新显卡驱动
PyCharm里没有torchPython解释器选错了环境检查Project Interpreter,重新关联到envs\pytorch\python.exe
conda create时提示SSL错误.condarc配置了无效镜像清除.condarc里的错误地址,或直接删除该文件恢复默认

6.2 包版本冲突的实战排查思路

有一天,某同学跑import torch时提示:

OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

这类问题通常是因为环境中安装了多个含OpenMP的库,比如NumPy和PyTorch都带了不同版本的OpenMP运行时,导致冲突。常规解决思路是更新相关库,或者调整环境变量让它们使用同一个运行时。这种问题虽然少见,但遇到时别慌,先从包依赖关系入手排查。

更通用的一条原则:任何import阶段报错,先用pip list查看是否安装了多个同名包,再用conda list查看包依赖树,必要时新建一个干净环境重新安装。别在坏环境里反复修,很多时候新建环境比修复更快。

6.3 硬盘与内存空间问题

PyTorch的GPU版安装包经常超过2GB,加上Anaconda本身、其他依赖包,整套环境最大可能占用七八GB空间。安装前最好确认一下剩于空间是否充足。

内存方面,CPU版加载模型比较吃内存,GPU版则需要显存。如果模型在GPU上跑不起来,报错“CUDA out of memory”,可以适当减小batch size,或者用with torch.no_grad()减少显存占用。这些都是后话,但提前知道能少走弯路。

6.4 路径中文和空格问题

很多人装Anaconda时图方便,直接改名成“Python环境”之类的文件夹,后面PyCharm解析解释器时就会遇到奇奇怪怪的编码问题。如果你已经踩了这个坑,最简单的办法是卸载重装Anaconda,路径用纯英文。虽然听起来很暴力,但确实是最省时间的做法。同理,项目名、代码目录也尽量别用中文和空格。

6.5 用conda还是pip装PyTorch,我的最终建议

安装PyTorch时,如果你已经有明确的GPU和CUDA需求,用pip装官方wheel包最直接;如果你想省心,让conda自动处理底层依赖,用conda也完全可行。我个人建议是:平时折腾环境的朋友用pip,图省事的朋友用conda。

但无论用哪种方式,环境都一定要独立出来。就算你在base环境里装成功了,我也建议推倒重来,建一个干净环境再装一遍。这个过程会让你把环境结构摸清楚,后面遇到任何问题都不至于两眼一抹黑。

最后再分享一个小技巧:每次装好新环境,在项目文件夹里放一个requirements.txt或environment.yml,记录下当前环境的依赖。换电脑、换服务器的时候,执行:

conda env create -f environment.yml

就能一键还原整个环境。这个习惯让我省了无数次重新配置环境的痛苦。

动手配置的时候如果中途卡住,不要急着怀疑人生,按文章里的顺序回头检查一遍:Anaconda是否初始化、环境是否激活、PyTorch安装源是否选择正确、PyCharm解释器是否选对。这几个环节只要一个不对,后面每一步都会连锁出错。祝顺利跑通第一个PyTorch程序。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 1:19:48

协处理器系统集成核心要点:总线、中断、DMA与缓存一致性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/15 1:19:45

阿波罗11号的系统工程启示:复杂项目拆解与风险控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/15 1:19:43

指令系统与数据通路:从x86到MIPS的CPU设计核心逻辑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/15 1:19:41

FUXA 组态屏:基于 Vue + Node 的 Web 工业 HMI 实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/15 1:19:25

RTC6715驱动实战:基于STM32的5.8G图传自动扫频实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/15 1:19:01

Streamsets数据接入实战:从可视化管道到数据漂移处理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华