☰
Anaconda+Jupyter Notebook:零基础Python环境配置与问题排查指南
2026/10/5 13:50:25 网站建设 项目流程

1. 为什么Python入门套装首选Anaconda加Jupyter Notebook

很多零基础的朋友第一次接触Python,大概率会卡在同一个地方:打开Python官网下载了安装包,装完发现是个黑乎乎的交互窗口,输个print("hello")能出结果,但稍微写几行代码就觉得别扭,想保存成文件又不知道怎么弄,更别提装第三方库了——打开网页看到pip install xxx,在命令行里一试全是红色报错。

于是不少人第一节课还没上完就放弃了,不是Python难,而是环境没搭好。

Anaconda加Jupyter Notebook这套组合,就是专门解决这个痛点的。Anaconda是一个Python发行版,官方说法是“面向数据科学的发行版”,说人话就是:它把Python解释器、常用的科学计算库(NumPy、Pandas、Matplotlib这些)以及包管理工具conda打包在一起,一次装完,省去新手逐个配置的麻烦。Jupyter Notebook则是跑在浏览器里的交互式编程环境,你可以在网页上写代码、立刻看到结果,还能写笔记、做图表,非常适合入门学习和做数据分析实验。

这篇内容就是完整走一遍安装和使用流程,包括我在实际安装中遇到的坑——比如某些选项勾不勾,直接影响后面能不能省心。适合完全零基础的人,也适合之前自己装过Python但总觉得环境乱糟糟、想推倒重来的朋友。

顺带说一句,网上搜“Anaconda安装”出来的教程非常多,但很多停留在“下一步下一步”的层面,没讲清楚每个选项是什么意思,出了问题也不知道怎么排查。这篇文章不光是步骤,还会把背后的逻辑讲明白——理解这些逻辑,比照抄命令重要得多。

2. Anaconda下载与安装:建议直接选国内镜像,省得折腾

2.1 下载之前先想清楚:装哪个版本

Anaconda的下载页面提供两个大版本,一个是最新版的Python 3.x安装包,另一个是旧版的Python 2.x(现在已经停止维护了,除非你有特殊需求,不要碰)。在Python 3的安装包里面,还会根据操作系统区分Windows、macOS、Linux。

不过这里有个容易忽略的点:2020年之后,Anaconda官方调整了镜像策略,直接从官网下载速度很不稳定,经常看到进度条卡在3%然后整个下载失败。所以我的建议是,不要死磕官网,直接用国内高校的镜像站下载。

清华大学的TUNA开源软件镜像站是很多人用的,地址是 mirrors.tuna.tsinghua.edu.cn,我记不清具体URL的时候一般直接搜“清华镜像 anaconda”。打开之后找到Anaconda的安装包目录,选对应系统的版本下载。

提示:下载安装包时注意看文件名里的版本号,一般来说选择最新稳定版就行,不必追求个别教程里的旧版本。新版对新手反而更友好,界面和默认配置都更完善。

2.2 Windows安装过程中的关键选项

下载完会得到一个exe文件,双击运行。网上很多教程说“一路Next就行”,这话对也不对——确实大部分步骤直接Next没问题,但有几步需要认真处理。

先看第一步:Install for Just Me 还是 All Users。我推荐选Just Me,也就是当前用户安装。选All Users需要管理员权限,安装时写入C盘系统目录,后续权限出问题会多一点。当然如果你电脑只有一个用户,这俩差别不大。

然后是安装路径。默认路径是C盘下的C:\Users\你的用户名\anaconda3,路径里没有中文和空格,这是最好的状态。如果你非要换到D盘,也务必保证路径全英文字符,不要出现D:\软件\Anaconda这种——后面创建虚拟环境、装包的时候,路径里的中文经常莫名其妙引发编码错误,排查起来很耽误时间。

最关键的一步是 Advanced Installation Options 页面,里面有两个复选框:

  • Add Anaconda3 to my PATH environment variable(推荐不勾选)
  • Register Anaconda3 as my default Python 3.9(推荐勾选)

网上对这两项的争议很大,我个人的建议是:PATH那一项不勾,默认Python那一项勾上。

为什么PATH不勾?勾选了这个选项,Anaconda会把自己的路径写进系统环境变量,好处是任何新打开的命令行窗口里都能直接敲conda、jupyter这些命令,省事。但坏处是,如果电脑上之前装过其他Python,或者后续你还要装CH340驱动这类会改动PATH的软件,Anaconda的Python会被当成默认Python参与各种系统脚本,引起版本冲突。处理环境变量的问题很磨人,初学者可能因此劝退。

不勾选PATH的话,日常使用通过Anaconda自带的“Anaconda Prompt”进入命令行再输入jupyter notebook,同样能正常启动。这是我实操下来最稳妥的组合。

2.3 安装完成后的验证

安装结束后,开始菜单里会出现Anaconda文件夹,里面的几个程序也不需要全弄明白,用得最多的是Anaconda Prompt和Jupyter Notebook,后面会说到。

先打开Anaconda Prompt——注意不是普通的cmd,然后在命令行输入:

conda --version

如果返回类似conda 24.x.x的输出,说明conda装好了。再输入:

python --version

能看到Python的版本号就正常。如果提示“python不是内部或外部命令”,别慌,多半是PATH没配置,直接用Anaconda Prompt执行就行,Anaconda Prompt会自动加载Anaconda的环境路径。

提示:验证环节不要跳过。很多人装完直接点Jupyter Notebook,打不开才回来排查,绕了一个大圈子。

2.4 macOS和Linux用户的注意事项

macOS用户下载的是pkg安装包,安装过程比Windows还简单,基本就是一路继续。但有个细节:macOS X版本较新(比如M1芯片)的话,下载页面会自动推荐适配Apple Silicon的安装包,别下错了。Intel芯片的Mac就选x86_64版本。

Linux用户一般用命令行安装,下载的是一个.sh脚本,执行:

bash Anaconda3-XXXX-Linux-x86_64.sh

过程中会问是否更新bashrc,选yes。装完之后记得关掉终端重新打开,或者执行source ~/.bashrc,否则conda命令同样找不到。

3. conda到底是什么:环境、包、路径这三个概念一定要搞清

3.1 环境隔离的意义

很多初学者把Anaconda看作一个“大号Python安装包”,这没毛病,但他们往往忽略了conda最强大的能力——环境管理。

举个例子:你正在用Python 3.11做Web开发,Django版本是4.x。过几天你跟着教程学数据分析,教程要求Python 3.9和某个特定版本的TensorFlow。如果只有一个全局环境,你要么升级这个降级那个,要么忍受一堆依赖冲突,折腾半天最后心灰意冷。

conda的虚拟环境就是为这个场景设计的。每个环境是一个独立的Python沙盒,有自己的解释器版本和第三方库集合,互不干扰。在不同项目之间切换到不同环境,就像在家穿拖鞋上班穿皮鞋一样自然。

命令也很简单,几个核心命令:

# 创建环境,指定Python版本 conda create -n myenv python=3.9 # 激活环境(Windows/Linux/macOS通用) conda activate myenv # 查看当前所有环境 conda env list # 退出当前环境 conda deactivate # 删除环境 conda remove -n myenv --all

新手通常只用base环境就够了,但养成“为项目创建独立环境”的习惯,后期会感激现在的自己。我就是早期入坑时没这个概念,所有包一股脑往base里装,最后base环境扩容到几十个G,随便装个新库都可能跟旧库冲突,只能整个卸载重装。这种痛,踩过一次就会改。

3.2 conda和pip的分工

稍微进阶一点就到了conda和pip的对比。conda不仅是包管理器,还能管理Python版本和底层依赖库(比如带C库的包),而pip是Python生态里的通用包管理工具,几乎什么包都能装。

听起来两者功能重叠,实际用起来,我的习惯是:

  • 优先用conda install装包,因为conda会检查依赖兼容性,自动解决版本冲突
  • conda没有的包(比如PyPI上独有或者刚发布的新库),再用pip install

一个常见的坑在混用上。如果同一个环境里,有些包是conda装的,有些是pip装的,将来出了问题排查起来会比较头疼。尽量一个环境内固定一种方式,或者至少按项目划分清楚,不然特容易遇见“版本够了却报导入错误”的灵异事件。

另外,pip install装包时,如果你当前激活了虚拟环境,它默认装进这个环境;如果没激活虚拟环境,它会装到base环境。好多人搞不清楚自己装哪儿了,就是因为这个细节。

3.3 Anaconda、conda、Python三者的关系

再理顺一层:Anaconda是发行套件,conda是Anaconda默认自带的包/环境管理工具,Python是conda管理的一种解释器。换句话说,Anaconda打包了conda和一套Python,而conda又有能力创建不同版本的Python环境。

明确这个关系后,后续看到“conda更换国内源”“conda配置环境变量”等操作就不会发怵了。

4. 启动Jupyter Notebook后的第一次实操:单元格就是你的草稿纸

4.1 两种启动方式,推荐先从菜单点

Windows用户最简单的方式,是直接在开始菜单的Anaconda文件夹里点击“Jupyter Notebook”图标。它会先弹出命令行窗口,自动启动本地服务,然后在默认浏览器里打开 http://localhost:8888 的界面。

还有一种方式是在Anaconda Prompt里手动输入:

jupyter notebook

这两种方式本质没有区别,但手动方式能让你看清服务日志——比如端口被占用、内核启动失败这些报错都会显示在命令行窗口里,方便排查。从图标启动时命令行一闪而过,反而看不到关键信息。

所以我建议:第一次用,老老实实打开Anaconda Prompt,输入jupyter notebook回车,看着它启动。命令行窗口不要关,关了浏览器里的Notebook也会断开。

4.2 认识浏览器里的文件管理界面

Jupyter启动后进入的是文件管理页面(File Browser),类似于Windows的资源管理器,默认显示的是你当前用户目录。右上角有一个“New”按钮,点击下拉菜单,选择“Python 3 (ipykernel)”,就会新建并进入一个Notebook。

Notebook的后缀是.ipynb,用JSON格式存储,里面包含代码、输出结果、Markdown笔记等多种内容。它不是传统意义上的脚本文件,更像一张“交互式实验记录纸”。

4.3 单元格机制是核心

进入Notebook页面,你会看到一个白色输入框,这就是一个单元格(Cell)。Jupyter的一切操作都围绕单元格展开:你可以写代码,也可以写Markdown内容,通过快捷键切换类型。

单元格顶部工具栏中间有一个下拉框,默认是“Code”。把它切换成“Markdown”,输入几个井号:

# 这是我的第一个Notebook

然后按Shift + Enter,单元格会渲染成标题格式,同时自动创建一个新单元格。这个操作背后的机制是:Shift加Enter表示“执行当前单元格并跳转到下一个”,这是Notebook最核心的使用逻辑。

对于代码单元格也一样:在一个单元格里敲print("hello jupyter"),按Shift+Enter,单元格下方立即显示输出结果。这种即写即所得的方式,特别适合学习阶段不断试错——写一行、执行一行、观察结果,随时调整。

常用的单元格操作我整理了一下:

操作快捷键/方式说明
执行当前单元格并移动到下一格Shift + Enter最常用
执行当前单元格且不移动Ctrl + Enter适合反复调试
插入单元格(上方)Esc 然后按 A光标在输入状态时按Esc退出编辑模式
插入单元格(下方)Esc 然后按 B同上
删除单元格Esc 然后连按两次 D同上
切换Markdown/CodeEsc 然后按 M / YM切换为Markdown,Y切换为Code
保存Ctrl + S也支持自动保存

单元格执行时左侧 In 后面的数字会加1,比如第一个单元格执行完显示In [1],第二个显示In [2]。输出结果则显示在单元格下方,Out[n]对应你的执行序号。这个编号机制非常直观,也是Notebook区别于普通IDE交互方式的核心。

4.4 写一个能跑通的入门示例

光说不练等于零。新建Notebook后,在第一个单元格里输入:

import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2 * np.pi, 100) y = np.sin(x) plt.plot(x, y) plt.title("sin curve") plt.show()

按Shift+Enter执行。Anaconda预装的项目到这一步基础环境已经不需要再装库,直接就应该看到一个正弦曲线图出现在单元格下方。如果你用了Anaconda自带的全套环境中(注意版本可能稍旧),这仍然是本命令。

看到图的那一刻,很多人会自己“哇”一声——不需要配置任何环境,几行代码直接出图,这就是Anaconda+Jupyter对新手最大的价值:把从“写代码”到“看到可视化结果”的链路缩到最短。

4.5 保存与分享:ipynb文件怎么管

Notebook会自动保存,默认间隔是120秒,也可以手动Ctrl+S。保存的文件在你启动Jupyter时所在的目录下,文件名在页面上方显示,点击即可重命名。

保存后的ipynb文件,可以直接用Jupyter重新打开,别人也可以双击打开(前提是装了Jupyter)。如果你想分享给朋友看,对方没装环境的话,可以“File — Download as — HTML”导出成网页,方便阅读但不方便执行。更常用的是导出成py文件,拿走当普通脚本用。

5. 新手最常碰到的几个问题排查:从单元格没反应到dll加载失败

5.1 单元格执行没有任何反应,先查内核状态

热搜词里有一条“jupyter notebook单元格执行代码没有任何反应”,这是出现概率最高的问题。症状很明显:光标停在代码块里,按Shift+Enter,右侧In后面的星号一直转或者干脆空白,就是不输出结果。

绝大多数情况是内核(Kernel)断开或卡死了。Notebook执行代码时,实际上是浏览器把代码发给本地的IPython内核进程去跑,内核崩溃或连接断了,代码就没有任何反馈。

排查链路我建议按这个顺序走:

  1. 看菜单栏的“Kernel”选项,如果显示“Reconnect”或者图标是灰色,说明内核掉线了,点击Kernel—Restart Kernel重启内核。
  2. 重启内核后再次执行,如果还是没反应,大概率是代码本身进入了死循环或极端耗时。比如while True: pass这种,内核在拼命算,但界面没反馈。这时候用工具栏的“Stop”按钮(方框图标)中断执行。
  3. 还不行,看看启动Jupyter的那个命令行窗口,里面有没有红色的报错堆栈。常见的报错比如端口被占用,会直接显示在那里。

提示:死循环这种事,新手在同时学循环语句时最容易触雷,我也没能幸免。遇到单元格卡住先想到Stop按钮,而不是暴力关浏览器——直接关浏览器的话内核进程还是残留的,下次启动Jupyter可能提示端口8888占用。

5.2 Importerror: dll load failed while importing rpds

这条报错在热搜里出现得很具体:“运行jupyter notebook出现importerror: dll load failed while importing rpds”,这也是一个很典型的依赖库损坏问题,经常出现在conda和pip混用、或者环境升级之后。

rpds 是referencing库的一个底层依赖,而referencing又被 jsonschema 依赖,jsonschema 被 Jupyter 相关组件使用。链条很长,但问题本质就一句话:某个底层库的DLL文件缺失或版本不匹配,导入时Windows加载不了。

我的处理办法是:

# 重新安装rpds这个包 pip uninstall rpds-py pip install rpds-py

或者用conda重新装一遍依赖:

conda install rpds-py --force-reinstall

装完重启Jupyter,一般就好了。如果重装之后还有类似dll load failed的报错,但包名不同,那就按同样的思路处理对应包名即可。归根结底,这类问题多半不是你的代码问题,而是环境配置被弄乱了。

5.3 浏览器打开Jupyter显示404或者空白

启动Jupyter后浏览器自动打开,结果显示404 Not Found,或者连接被拒绝。很多人以为Jupyter坏了,其实通常是浏览器指定的地址不对。

Jupyter启动时命令行窗口会打印一行,类似:

http://localhost:8888/tree?token=xxxxxxxx

里面的token是登录凭证,浏览器有时会丢失这个token导致访问被拒绝。遇到这种情况,复制命令行里显示的完整URL,粘贴到浏览器地址栏手动访问。

还有一种情况是端口被占用,Jupyter自动切到了8889端口,但浏览器访问的还是8888。此时看命令行窗口,它会明确提示Jupyter Notebook is running at: http://localhost:8889/...,跟着提示走就行。

5.4 想要修改Notebook默认打开目录

经常有人问:每次打开Jupyter都停在我的用户目录,能不能固定到我放代码的文件夹?

可以,但需要在启动配置文件里修改。打开Anaconda Prompt,执行:

jupyter notebook --generate-config

这条命令会在你用户目录下的.jupyter文件夹生成一个jupyter_notebook_config.py配置文件,用文本编辑器打开,找到这一行:

# c.NotebookApp.notebook_dir = ''

把注释符号去掉,把单引号里填上你的目标路径,比如:

c.NotebookApp.notebook_dir = 'D:/MyCode/PythonProjects'

注意这里路径分隔符要用正斜杠/或者双反斜杠\\,Windows默认的反斜杠单写会触发转义问题。修改保存后重启Jupyter,默认目录就变了。

5.5 装了新包却在Notebook里import不到

这种问题也很普遍:在Anaconda Prompt里pip install requests成功,然后去Jupyter里import requests却说ModuleNotFoundError。

原因几乎总是“装包的环境”和“Jupyter使用的环境”不是同一个。如果你没有激活虚拟环境就在base里pip install,而Jupyter的内核启动时却指向了一个conda环境,或者Jupyter是在普通cmd里启动的,二者不是同一个Python解释器,自然找不到这个包。

排查办法在Notebook里执行:

import sys print(sys.executable)

这会输出Jupyter当前使用的Python解释器路径。再用命令看你的包装到了哪个Python路径下,两相对比就知道谁不对了。最常见的解决方案是保证从Anaconda Prompt启动Jupyter,并确认激活了正确的环境后再装包。

6. 从Notebook走向完整项目:几个习惯和进阶思路

6.1 养成环境隔离和依赖记录的习惯

Anaconda加Jupyter这套环境好上手,但长期用下去,如果不注意管理,新坑会不断冒出来。我强烈建议从第一天就养两个习惯:

第一,按项目创建虚拟环境,哪怕现在只是练手。练手项目通常装依赖很随意,过两个月翻出来看,已经想不起当初是怎么跑通的了。有虚拟环境以后,在这个项目里怎么装包都没关系,环境坏了重建一个也就几分钟的事。

第二,项目里保存一个requirements.txt。生成方式很简单:

pip freeze > requirements.txt

以后换电脑或者别人想复现你的环境,执行pip install -r requirements.txt就能装回相同依赖。如果项目主用conda,还可以导出完整环境描述文件:

conda env export > environment.yml

6.2 Notebook不是脚本替代品,学会分工

Jupyter Notebook适合探索、实验、展示,但它不适合写正式的可复用代码模块。写了三个月Notebook之后,你会发现代码一多,单元格之间跳来跳去非常乱,这时候就该把逻辑封装成.py文件,用函数和类组织,Notebook只负责调用和展示结果。

常见的结构是:项目里建一个src文件夹放.py模块,Notebook放在顶层当实验记录和报告展示用。Notebook里通过from src.my_module import my_function调用自己写的函数,两边互不干扰。

6.3 扩展插件:让你的Notebook更好用

Jupyter有一个官方扩展系统,最常用的是jupyter_contrib_nbextensions,装上之后可以提供表格格式化、代码折叠、自动补全等功能,体验向IDE靠拢不少。安装方式:

pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user

装完后在Jupyter首页会出现Nbextensions标签页,自己勾选需要的扩展。也有一些人在编辑器中配置nvim相关环境来获得更好的输入体验,这是一个典型的进一步优化方向。入门阶段不建议一上来就折腾这些,先把核心流程跑顺,扩展是锦上添花的事。

6.4 数据科学之外,这套环境还能做什么

很多人以为Anaconda和Jupyter只能跑数据分析或机器学习,其实不是。日常写爬虫、处理Excel表格、做自动化和办公脚本,Jupyter的交互方式都很好用。尤其是在处理Excel时,数据的中间计算过程每一步都看得见摸得着,比在IDE里反复print方便得多。

我自己经常用Jupyter处理一些每周重复的报表任务——读取数据、清洗、分组统计、出图,最后再把结论写成一个Markdown笔记存档。一条龙下来,过程可回溯,结果可展示,每次复盘只需要重新打开文件跑一遍就行。

说到最后,我个人在带新人入坑Python这件事上最深的体会是:工具链的选择会影响前期学习的动力曲线。Anaconda加Jupyter Notebook的即时反馈机制,能让你在半小时内写出第一个出图程序,这种正反馈对新手极其宝贵。先把环境问题解决妥当,再把每一步操作理解到位,Python这条路的起点就算扎实了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询