news 2026/10/17 10:04:19

从零配置深度学习环境:Anaconda、TensorFlow与PyCharm安装详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零配置深度学习环境:Anaconda、TensorFlow与PyCharm安装详解

很多第一次接触深度学习的同学,遇到的第一个坎往往不是算法本身,而是把环境搭起来。我见过不少人卡在Anaconda装到一半、TensorFlow装完import报错、PyCharm里解释器死活选不对这几个环节,折腾一整天还没跑起来第一行代码。

这篇教程就是一份可以直接照抄的安装配置记录,覆盖Anaconda安装、TensorFlow的CPU/GPU版本选择和安装、PyCharm解释器配置这三个环节。为了让刚入门的朋友也能顺利跟上,每一步我都会解释为什么这么做,而不仅仅是机械地贴命令。

以我个人的实测经验来说,整个流程按这套顺序走下来,大概小半天能完成,遇到问题也基本集中在版本匹配和源配置上,这两块我会单独整理一章排查清单,方便你对照定位。

1. 装之前先把思路理清楚:版本、环境、显卡三件事

1.1 为什么绕不开Anaconda

Anaconda是Python生态环境里常用的一站式管理工具,它自带一个Python解释器、几百个常用科学计算包,还有一套环境管理功能conda。很多人会问:我自己装个Python不就行了吗?可以,但如果你需要在不同项目里使用不同版本的Python、不同版本的TensorFlow和PyTorch,用conda管理虚拟环境会轻松很多。一个项目开一个独立环境,互不干扰,删掉环境就像卸载软件一样干净。

说句实在话,我最初也是在系统Python里直接开干,做图像处理时因为一个包版本冲突,把环境搞得一团糟,最后重装了好几次Python才恢复。后来换用Anaconda,每个实验项目开一个独立环境,再没出过互相污染的问题。这个习惯值得从一开始就养成,不要图省事。

1.2 TensorFlow版本选择先于安装

TensorFlow有CPU版和GPU版之分,在2.x主版本内又有不少小版本差异。装之前需要想清楚:你的电脑有没有支持CUDA的NVIDIA独立显卡?如果没有独立显卡,或者显卡不支持CUDA,那就老老实实装CPU版,代码不需要改动,只是训练慢一些;如果有可用的NVIDIA显卡,推荐装GPU版,训练速度能提升数倍。

真正容易翻车的点是TensorFlow、CUDA、cuDNN三者的版本对应关系。TensorFlow 2.10及以前的版本在Windows上对CUDA和cuDNN版本有比较明确的对应要求,到2.11及以后,官方在Windows上不再支持GPU,更推荐用WSL2或Linux系统。很多安装失败的案例都卡在这里,装之前先确认自己的系统,再决定TensorFlow的版本。

1.3 先确认你的显卡与驱动情况

在装GPU版之前,花两分钟确认一下系统现状,可以省掉之后的大麻烦。Windows下在命令行输入:

nvidia-smi

如果显示显卡型号和驱动信息,并且右上角有CUDA Version,说明驱动已经装好且支持CUDA。注意,这个CUDA Version表示驱动支持的最高版本,不代表系统已经安装了对应版本的CUDA工具包。TensorFlow本身不直接依赖系统全局CUDA,我们完全可以在conda虚拟环境里装一个与TensorFlow匹配的cudatoolkit,这个后面会详细说。

如果nvidia-smi命令提示找不到,说明没有装NVIDIA驱动,或者显卡不支持CUDA,这种情况直接选择CPU版TensorFlow即可,不用纠结。

2. Anaconda安装与虚拟环境实操

2.1 下载和安装Anaconda的注意事项

Anaconda的安装包从官网下载就可以,体积大概500MB左右,下载时选对应系统的版本,Windows用户注意区分64位和32位,现在基本都是64位了。

安装过程大部分是点击Next,但在Windows下有几个地方需要留意:

  • 安装路径不要包含中文和空格,建议用D:\Anaconda3这样的纯英文路径;
  • 如果安装界面提供“Add Anaconda to my PATH environment variable”选项,建议勾选,不勾选的话之后用命令行调用conda会很麻烦;
  • 到Advanced Options界面时,不要勾选“Register Anaconda as my default Python”,避免覆盖系统原有的Python注册信息。

装完之后,重新打开一个命令行窗口,输入:

conda --version

能正常输出版本号,说明安装成功。如果提示找不到命令,多半是PATH没有生效,重启命令行或重启系统后再试。Linux和macOS下安装方式不同,官方提供shell脚本安装包,运行后还要source一下配置让conda命令生效。

2.2 创建和管理虚拟环境

虚拟环境是conda最好用的功能之一,它能把不同项目的依赖彻底隔离。创建一个新环境用下面这条命令:

conda create -n tf2 python=3.9

这里tf2是我给环境起的名字,python=3.9指定环境内的Python版本。关于Python版本,我的建议是尽量不用最新的,因为TensorFlow等框架对新版Python的支持常常滞后。经过多次实测,3.9这个版本对TensorFlow的兼容性很稳,新手用这个版本不太会出兼容问题。

创建完成后,激活环境:

conda activate tf2

激活后,命令行提示符前面会出现(tf2)字样,说明当前已经在tf2环境内,此后用pip安装的包都会装到这个环境里。离开环境用conda deactivate。查看已有全部环境用:

conda env list

如果某个环境彻底玩坏了,不要尝试去修,直接删除重建最快:

conda remove -n tf2 --all

2.3 换源提速:conda和pip都要配

国内网络环境下安装包最大的痛点就是下载速度慢。很多包默认从官方源下载,速度只有几十KB甚至超时。解决办法就是换镜像源。

conda配置源的方式有两种,一种是直接写配置文件,另一种是用命令。通常我使用命令来添加:

conda config --add channels https://某国内镜像站/anaconda/pkgs/main conda config --add channels https://某国内镜像站/anaconda/pkgs/free conda config --set show_channel_urls yes

配置好后可以通过conda info查看当前使用的源。pip源同理,在用户目录下创建pip配置文件(Windows叫pip.ini,Linux/macOS叫pip.conf),写入镜像地址:

[global] index-url = https://某国内镜像站/simple trusted-host = 某国内镜像站

配置完后再安装包,速度体感提升非常明显,实测有些本来要下载十几分钟的包,换源后几十秒就搞定。这里有一点要提醒:镜像源服务商可能存在变动,如果配置后还是慢,可以去搜索引擎搜“pip 国内镜像”找当前可用的地址。

注意:在换源时要选择声誉较好、长期可访问的公共镜像服务,不要随便填写不明来源的源地址。

3. TensorFlow安装全流程

3.1 CPU版本安装

CPU版本安装是最简单的,激活tf2环境后执行:

pip install tensorflow

这里我推荐用pip而不是conda install tensorflow。原因有两个:一是conda源中的TensorFlow版本经常滞后,二是TensorFlow官方本身就推荐用pip安装。

安装过程中pip会把TensorFlow的核心依赖一并装上,如果安装速度太慢,说明pip源没有配置好,回到上一节把pip源换掉再继续。

安装完成后,先验证一下:

python -c "import tensorflow as tf; print(tf.__version__)"

输出类似2.10.0的版本号,说明安装成功。如果import时报错,常见原因大多是Python版本太高或太低,检查虚拟环境的Python版本是否在3.8~3.10之间。如果版本没问题还是报错,看有没有提示缺少DLL文件,这通常需要安装Visual C++运行库。

3.2 GPU版本安装与版本匹配

GPU版本安装最核心的是版本对应关系。我一般按下面三步走:

  1. 用nvidia-smi查看驱动支持的最高CUDA版本,比如显示CUDA Version 12.2;
  2. 确定TensorFlow版本,再反查它要求的CUDA和cuDNN版本;
  3. 在conda环境里安装对应版本组合。

以兼容性较好的组合为例,TensorFlow 2.10对应CUDA 11.2和cuDNN 8.1,安装命令如下:

conda install -n tf2 cudatoolkit=11.2 cudnn=8.1 pip install tensorflow==2.10.0

先装cudatoolkit和cudnn,是因为这两个库用conda安装最方便,能避免手动下载配置CUDA的那一堆步骤。TensorFlow运行时会自动识别环境中的CUDA版本,不需要改系统环境变量。

安装完成后,验证GPU是否被识别:

import tensorflow as tf print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

输出大于0,说明GPU识别成功。如果输出为0,先不要怀疑显卡坏了,优先检查cudatoolkit和cudnn版本是否与TensorFlow要求的一致,其次检查驱动版本是否过旧。

这里需要特别强调一点,TensorFlow 2.11以后的版本在Windows上已经不再官方支持GPU。如果你用的是Windows且想要TensorFlow GPU加速,有三种可行路线:

方案说明
安装TensorFlow 2.10或更旧版本最简单,按上面步骤来即可
使用WSL2安装Ubuntu再装GPU版官方推荐,体验接近Linux
换用PyTorch框架如果你还没开始写TensorFlow代码,可以考虑

3.3 验证安装是否成功

版本号输出正常,不代表环境真的能跑训练。很多初学者装完直接跑大型模型,报错后分不清是环境问题还是代码问题。所以我建议装完环境后用一段现成的小脚本来验证,比如经典手写数字识别:

import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) model.fit(x_train, y_train, epochs=3)

这段脚本如果能在几分钟内跑完,说明TensorFlow安装完全可用,之后项目里的模型报错基本可以确定为代码问题,不用再怀疑环境。我第一次装完GPU版环境时就是用这个进度验证的,第二天写模型代码遇到报错时,心里非常有底。

4. PyCharm配置与项目联动

4.1 用Anaconda创建好的环境配置PyCharm解释器

PyCharm是使用很广泛的Python IDE,它本身不负责安装Python环境,而是需要一个可用的解释器。既然我们已经用conda创建好了tf2环境,配置思路就非常清晰:让PyCharm指向tf2环境内的Python解释器。

具体操作路径是:

  1. 打开PyCharm,进入File -> Settings -> Project -> Python Interpreter;
  2. 点击右上角齿轮图标,选择Add Interpreter -> Add Local Interpreter;
  3. 左侧选择Conda Environment,然后选择Existing environment;
  4. 在下拉框中选中tf2,PyCharm会自动定位到该环境对应的Python解释器路径;
  5. 点击OK保存。

回到主界面后,PyCharm右下角会显示当前项目解释器环境,如果显示tf2,说明配置成功。

这里有一个很容易踩的小坑:如果你在新建项目时指定了项目目录,而这个目录里恰好存在之前遗留的venv文件夹,PyCharm有可能会默认选择项目里的venv作为解释器,导致你费劲配好的conda环境没有被使用。遇到这种情况,检查一下解释器路径是否真正指向conda环境中的python.exe,指向错了就手动改回来。

4.2 配置项目依赖与Terminal联动

PyCharm底部的Terminal窗口默认进入的是当前项目环境,但有时输入conda activate tf2会提示找不到conda命令。这是因为PyCharm的Terminal没有继承conda初始化后的全部环境变量。解决办法有两个:

  • 在Terminal里直接用conda完整路径来激活环境,Windows下类似C:\Users\用户名\anaconda3\Scripts\conda.exe activate tf2;
  • 在PyCharm的Settings -> Tools -> Terminal里把shell path设置为conda自带的shell启动脚本,这样每次打开新终端时conda命令就能直接用。

装包的话,个人更推荐在Terminal里用pip操作,而不是点PyCharm的图形化安装。原因是命令行能更精确地控制版本号和安装源,配合换源之后安装体验也快。PyCharm的代码提示在绝大多数情况下能自动识别新建的包,如果发现没有提示,可以在Settings里无效缓存并重启,或者检查解释器路径是否依然正确。

4.3 关于调试和远程开发的简单补充

PyCharm的调试器和远程开发功能扩展性很强,但入门阶段先把本地环境配好就能覆盖大多数场景。如果你的项目需要拿到服务器上训练,可以考虑PyCharm Professional的Deployment功能,本地写代码,远程执行,原理和本地配置思路类似,只是把解释器来源换成SSH或Docker。

对初学者来说,我建议先不要折腾远程开发,把本地环境理顺已经能支撑起深度学习课程、毕业设计、Kaggle练习等绝大多数任务。有时候过于追求速度,反而容易在环境配置上消耗太多时间,得不偿失。

5. 我踩过的坑和排查清单

5.1 常见安装错误速查表

把这些年身边同学和朋友遇到比较多的问题整理成一个表,方便对照排查。

现象可能原因解决办法
conda不是内部或外部命令未加入PATH手动添加环境变量到anaconda3和anaconda3/Scripts,或重装Anaconda
pip安装TensorFlow超时网络原因或默认源慢配置pip国内镜像,或加长timeout参数
import tensorflow报DLL加载失败缺少Visual C++运行库安装系统对应版本的VC++ Redistributable
GPU识别不到cudatoolkit/cudnn未装或版本不匹配用conda安装与TensorFlow匹配的组合版本
conda create环境速度极慢默认源下载慢配置conda国内镜像后重建
PyCharm提示ModuleNotFoundError解释器选错或包没装上确认解释器路径,在Terminal执行pip list检查包
TensorFlow无法import但版本号能打印环境内依赖被损坏重建一个新的conda环境重新安装

这张表基本覆盖了我遇到过的绝大部分环境问题,如果你安装时碰到表外的报错,第一步先去搜索引擎复制完整报错信息,第二步检查Python版本与TensorFlow版本的匹配关系,大概率能快速定位。

5.2 conda与pip混用的教训

一个非常影响日常开发效率的习惯,就是一会儿用conda install、一会儿用pip install。虽然conda和pip在同一个环境里能共存,但两者对依赖的解析方式不同,混用到后期很容易出现冲突。常见的场景是:conda把某个依赖包固定在较旧版本,pip升级包时又把依赖拉到新版本,结果另一个依赖旧版本的库在运行时崩溃。

我的建议是,在一个环境里尽量固定一种主要安装方式。对于TensorFlow这类官方推荐pip的包,直接用pip;对于只有conda渠道才方便处理的包,比如cudatoolkit,才用conda。装完一个包发现环境异常时,优先考虑是否出现了混装导致的依赖版本错乱,重建虚拟环境往往比修补快得多。

5.3 磁盘与路径问题的处理

还有一类问题不是装不上,而是装完后磁盘占用超出预期,或者路径存在坑。Anaconda本体加一些缓存文件,占用3GB以上很正常,再加上TensorFlow和依赖包,单个环境再占用1GB左右也常见。磁盘不够用的话,安装时把Anaconda放到非系统盘,同时注意定期清理conda缓存和pip缓存。

路径问题更隐蔽。Windows下如果系统用户名是中文,有些安装包在后续加载时可能出现奇怪错误,表现为PyCharm加载解释器时提示路径无效。最省心的方案是让Anaconda安装路径保持纯英文,比如D:\Anaconda3,并且项目代码所在目录也不要出现中文。这个建议看起来简单,却能避免大量莫名其妙的兼容问题。


最后说一下我自己的体会。安装环境这件事,技术操作本身不算复杂,真正的坑往往集中在“版本妥协”上。不要执着于把每个库都装到最新版,而是优先选择框架官方文档中标注的稳定组合。我第一次配置GPU环境时,非要装最新版TensorFlow,结果在CUDA版本匹配上折腾了整整两天;后来老老实实按照官方文档的版本要求,半小时就搞定了。

这套流程我在不少机器上反复验证过,凡是遇到问题,回到版本匹配和源配置这两个方向排查,基本都能解决。如果你在实操过程中遇到别的坑,也建议按这个思路走一遍,你会发现大部分问题的根源其实指向那几个共同原因。

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

蓝桥杯BASIC-12十六进制转八进制:大数进制转换的字符串分组解法

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

作者头像 李华
网站建设 2026/10/17 10:03:15

Markdown中LaTeX公式渲染问题排查与跨平台兼容写法

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

作者头像 李华
网站建设 2026/10/17 10:03:14

Zephyr内存池Memory Pools参数配置与踩坑实践:从k_mem_pool到sys_heap

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

作者头像 李华
网站建设 2026/10/17 10:02:05

xlrd/xlwt/xlutils三件套:Python处理旧版.xls文件的完整指南

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

作者头像 李华