Anaconda和Jupyter Notebook安装及使用教程入门级如果你已经开始学Python大概很快会撞上一个特别糟心的场景今天要用pandas处理数据装了一个包明天跑别人的代码又提示缺少某个依赖后天另一个项目需要Python 3.8但你机器上只有3.10一升级老脚本全挂了。我在带新人入门时见过太多次这种混乱一台电脑上装了三四个Python版本每个项目依赖的包互相冲突最后不得不格式化重装系统。而Anaconda这个Python全家桶之所以能成为数据科学和机器学习领域的事实标准就是因为它把Python解释器、包管理器conda、常用科学计算库、Jupyter Notebook这套工具链打包到了一起并且用虚拟环境把不同项目的依赖彻底隔离。这篇教程面向的是零基础或者半基础的朋友。我会从Anaconda到底解决什么问题讲起带你走完下载安装、首次启动Jupyter Notebook、创建管理虚拟环境的完整流程最后再给一份我踩过的坑的排查清单。全部内容都是我在不同操作系统上实测过的操作你可以直接照着做。1. Anaconda到底是什么以及它帮你绕开了哪些坑很多初学者有个误解以为Anaconda只是一个大点的Python。这样说对了一半但不全面。Anaconda本质上是一个Python发行版在Python解释器之上额外集成了conda包管理工具、Navigator图形界面、Jupyter Notebook、Spyder以及300多个科学计算领域最常用的第三方库比如numpy、pandas、matplotlib、scikit-learn安装完就能开始干活不用再一个个去拼装。1.1 Python环境为什么会乱如果你裸装Python然后用pip去安装各种包时间一长一定会遇到下面这些问题全局安装导致依赖冲突项目A需要pandas 1.x项目B需要pandas 2.x装到同一个全局环境里必然互相覆盖Python版本切换困难你想同时用Python 3.8和3.10裸管理基本靠手动改环境变量改着改着系统就崩了卸载不干净Windows上裸装Python想卸载往往残留一堆注册表和脚本重装又会带来新的问题。我见过最夸张的一个案例一个学生为了跑机器学习课作业在电脑里装了三套Python最后连系统自带的命令行工具都受到环境变量污染打不开终端。这类问题在Anaconda体系下几乎不会遇到因为每个项目的依赖都被锁在独立的虚拟环境里互不干涉。1.2 conda与pip的分工差异这是新手最容易懵的地方。Anaconda自带两个包安装工具conda和pip很多人分不清到底用哪个。简单说conda是一个环境管理器包管理器除了安装Python包它还能创建独立的Python解释器版本环境。pip则纯粹是Python包管理器只能安装包到当前环境。实操中的选择逻辑是默认优先用conda install因为Anaconda官方已经帮你验证过不同包之间的依赖兼容性如果某个包在conda源里没有比如很多最新版本的库就用pip install但要注意这个包会装进当前激活的虚拟环境不会污染别的环境。在Windows上有个特别常见的报错是pip install提示externally-managed-environment这是因为新版pip会检测系统包的所属关系。在Anaconda的虚拟环境内一般不会遇到但如果你在系统Python里强行用pip就可能被拦。所以我的建议始终是Python环境管理直接交给Anaconda。1.3 谁适合用Anaconda我通常这样跟人讲如果你是搞数据分析、机器学习、科学计算或者你是学生、科研人员需要快速在实验室和家里电脑之间保持环境一致Anaconda是最省心的选择。如果你是纯软件工程师只写Web后端依赖相对少用系统自带的虚拟环境也完全OK。另外Anaconda自带的Jupyter Notebook对于教学演示和探索性数据分析特别友好可以边写代码边看到结果还能穿插文字说明和图表天然适合做技术笔记。后面我会专门用一整章讲它的上手方法。提示Anaconda占用磁盘空间比较大装完基础版大概需要3~5GB。如果只是图个环境隔离功能可以装Miniconda只包含Python和conda体积小很多。但第一次上手我建议直接用完整版Anaconda省去后续单独安装各种库的麻烦。2. 从下载到装完Anaconda安装全流程与容易翻车的三个细节安装Anaconda的逻辑不复杂但细节翻车率极高。我实测过Windows、macOS和Ubuntu三种系统的安装下面按照最常见的Windows流程讲最后补充macOS和Linux的差异。2.1 官网下载还是镜像源下载Anaconda的官方下载地址是anaconda.com/products/distribution进去之后页面会默认显示Windows版的Download按钮。但官网服务器在国外国内下载速度经常只有几十KB/s一个600MB的安装包可能要下半小时以上。我的建议是直接用国内镜像站下载。清华大学的开源软件镜像站mirrors.tuna.tsinghua.edu.cn/anaconda/archive/同步了Anaconda官方所有的历史版本安装包。你可以在镜像站的archive目录里挑一个版本比如2024.06-1版本的Windows x86_64安装包速度通常能达到几MB/s一分钟内就能下完。选版本的时候注意两点优先选Anaconda3-2024.xx这种较新的版本自带的Python版本比较高兼容性更好注意文件名末尾的Windows-x86_64表示64位系统绝大多数电脑都用这个。32位系统现在很罕见了但如果你电脑比较老需要找Windows-x86的版本。顺便提一句网上搜Anaconda下载经常先跳出来各种高速安装助手之类的第三方站点我建议一律避开只用官网或者清华镜像站避免捆绑软件和流氓插件。2.2 安装过程中那些必须勾对和选对的地方安装包下载完成后双击运行大部分步骤直接点击Next即可但有几个窗口值得停下来想想。第一个关键点是安装路径。默认路径是C:\Users\你的用户名\anaconda3我建议就保留这个默认路径。修改路径的时候切记路径中不能出现中文和空格。有朋友喜欢装到D:\软件\Anaconda这个路径本身没毛病如果非要自定义就用纯英文字母加数字的组合。第二个关键点是Add Anaconda3 to my PATH environment variable这个勾选框。这里有个广为流传的说法是千万别勾我认为需要分情况。如果你的电脑上没有装过别的Python我建议勾上。因为不勾的话在终端里输入conda会提示找不到命令新手很容易在这一步卡住——明明装好了命令行却不认如果你电脑上已经有其他Python应用或者你以后主要用PyCharm这类集成开发环境那可以不勾用Anaconda Prompt进开发环境。网上很多教程一口咬死坚决不勾然后新人装完想用命令行验证又发现找不到conda白白多绕一个弯。我的实操经验是对刚入门的朋友来说勾上更省心唯一需要注意的是如果电脑里本来就装了Python勾选后可能在命令行里需要调整一下环境变量优先级。第三个关键点是Advanced Installation Options界面里面还有两个勾选框分别是注册Anaconda为默认Python 3.x和清除缓存。默认情况下这两个框是勾上的保持默认即可。安装过程大概需要几分钟到十几分钟取决于硬盘速度。装完之后建议顺手把桌面上自动生成的Anaconda Navigator和Jupyter Notebook快捷方式留着后面会用到。2.3 装完之后的第一件事验证安装安装完成后打开你的命令行工具在Windows上可以用cmd或者PowerShell输入conda --version如果能看到类似conda 24.7.1的输出说明conda已经可用。再输入python --version如果输出Python 3.12.4之类的版本信息说明Anaconda里的Python解释器也生效了。这里有个极易混淆的点在勾选了Add to PATH之后命令行里的python命令指向的是Anaconda自带的Python而不是你以前可能装过的Python。如果输入python --version显示的版本号和Anaconda主页上标注的不一致多半是环境变量里旧的Python路径排在前面。解决方案是把Anaconda的路径在系统环境变量里往上调整或者干脆卸载掉旧的Python。2.4 macOS和Linux安装要点macOS的安装过程和Windows大同小异下载的是.pkg格式的安装包双击后按向导操作在Destination Select步骤建议选择Install for me only只当前用户安装避免权限问题。安装完成后在终端里执行source ~/.bash_profile或者如果你用的是zsh新版macOS默认执行source ~/.zshrc再输入conda --version验证。Ubuntu等Linux发行版稍微麻烦点。下载下来的文件是.sh脚本需要先赋予执行权限再运行chmod x Anaconda3-2024.06-1-Linux-x86_64.sh ./Anaconda3-2024.06-1-Linux-x86_64.sh安装过程中会问你是否接受许可协议一路输入yes就行。最后它会问你Do you wish the installer to initialize Anaconda3 by running conda init?这里建议输入yes这样conda会自动写入你的shell配置文件比如~/.bashrc或~/.zshrc。安装完成后重新打开终端或者执行source ~/.bashrcconda命令就能用了。在Linux上有个高频出问题的点如果你已经装了某个系统版本的Python比如Ubuntu系统自带的3.10安装Anaconda后执行python命令可能还是指向系统路径。此时可以输入which python看看实际路径如果指向/usr/bin/python可以用conda activate base先激活base环境再看。3. Jupyter Notebook正式上手网页版Python实验室的打开方式Jupyter Notebook是Anaconda全家桶里对新手最友好的一个工具。它的本质是一个基于浏览器的交互式Python运行环境你在网页里写代码按一下ShiftEnter执行结果会直接显示在代码块下方还支持穿插Markdown格式的文字说明、插入图片和渲染公式。我用它写过课程讲义、做过数据分析报告、跑过机器学习Demo体验上就是一个可执行的实验笔记本。3.1 三种启动方式推荐先用第一种启动Jupyter Notebook有三种途径我按照推荐程度排个序。第一种从Anaconda Navigator启动。打开Navigator在Home页面上找到Jupyter Notebook模块点击右侧的Launch按钮它会自动打开一个浏览器新标签页。第二种在命令行启动。如果你勾选了Add to PATH可以直接在终端输入jupyter notebook终端会输出一串日志自动弹出浏览器。如果你设置了Anaconda的路径但终端不认可以用Anaconda PromptWindows下Anaconda自带的命令行工具来执行同样的命令。第三种在虚拟环境里启动。激活某个虚拟环境后再执行jupyter notebookJupyter就会以这个环境里的Python作为内核运行。这一步对后面用PyTorch、TensorFlow很重要因为你在base环境打开Jupyter是import不到虚拟环境里安装的深度学习框架的。启动后浏览器会显示一个类似文件管理器的页面默认根目录是Anaconda的安装目录或者你的用户主目录。这里可以新建文件夹、上传文件、进入目录也可以新建一个Notebook文件。3.2 一个Notebook单元格Cell的基本操作点击界面右上角的New在下拉菜单中选择Python 3 (ipykernel)就会创建一个新的.ipynb文件。这个文件格式适合记录完整的分析思路比如原理讲解、代码、图表、结论都在同一个文档里。新建的Notebook里默认有一个空的代码单元格Cell。在单元格里输入print(Hello, Anaconda!)然后按ShiftEnter运行结果会出现在单元格下方同时光标会自动跳到下一个新单元格。掌握下面这组快捷键操作效率会高很多ShiftEnter运行当前单元格跳转到下一个单元格CtrlEnter运行当前单元格不跳转Esc后按M把当前单元格切换为Markdown格式可以写文字Esc后按Y把当前单元格切换为代码格式Esc后按A在当前单元格上方插入新单元格Esc后按B在当前单元格下方插入新单元格Esc后按D D连按两次D删除当前单元格。补充一个细节单元格左边的In [ ]符号可以看做执行状态的指示灯。In [*]表示代码正在运行等待时间长了可能是死循环了可以点击菜单栏Kernel下的Interrupt中断执行。3.3 新手最该知道的几个魔法命令Jupyter Notebook的灵魂除了灵活的执行方式还在于它内置了一批魔法命令以百分号开头我用得最多的是下面这几个# 让matplotlib生成的图表直接显示在Notebook里 %matplotlib inline # 在Notebook里执行系统命令比如查看当前目录 !dir !ls # 测试一行代码的运行耗时 %timeit sum(range(1000)) # 打印当前Notebook使用的Python解释器路径 import sys print(sys.executable)%matplotlib inline这个命令尤其重要。如果你发现画图不显示、弹出一个空窗口多半是没有先执行它。新版Jupyter和较新版本的matplotlib有时候会自动归类但新手最好还是每次运行前显式执行一次。还有一个概念必须搞清楚内核Kernel。Notebook页面右上角显示的是当前内核比如Python 3 (ipykernel)。你创建的环境不会自动出现在内核列表里需要在环境里额外装一个ipykernel包并注册。具体操作我放到下一章讲因为这是虚拟环境和Jupyter结合的核心场景。3.4 让Notebook不乱保存、导出与改名.ipynb文件虽然是以JSON格式存储的但你可以直接把它当普通笔记文件管理。重命名在文件管理页面的文件列表里勾选文件后点击Rename按钮导出Notebook菜单栏里有File→Download as可以导出成.py脚本、HTML网页甚至PDF自动保存Jupyter默认开启自动保存功能默认每120秒保存一次。你也可以随时按CtrlS手动保存。我自己的习惯是每个完整分析项目的Notebook都放在一个独立的文件夹里文件名用日期_主题的格式比如20250224_电商数据清洗分析.ipynb。因为Notebook文件天然就是边做边记录的载体规范命名能在三个月后帮你快速回忆起当时的思路。4. 虚拟环境是Anaconda的灵魂创建、切换与绑定PyCharm如果说Jupyter Notebook是Anaconda的门面那conda管理的虚拟环境就是它的地基。虚拟环境的本质是在同一个操作系统上创建多个互相隔离的Python目录每个环境拥有自己独立的Python解释器版本和第三方包集合。激活某个环境后命令行和程序里的python和conda就都指向这个环境的路径。4.1 创建和删除环境每个项目一套创建虚拟环境的命令非常简单关键是先把命名规则想好。conda create -n pytorch_env python3.9这条命令会创建一个名字叫pytorch_env的新环境并指定使用Python 3.9版本。参数-n是--name的简写后面跟环境名最后面可以跟任意你需要的包比如conda create -n data_analysis_env python3.10 pandas numpy matplotlib小提示环境名建议用全小写字母加下划线不要用中文和空格因为有些底层工具对非ASCII字符路径支持不好。我见过用中文名字建了环境结果某个依赖库死活编译不过的案例。查看当前存在的所有环境conda env list输出中带星号或者显示括号的就是当前激活的环境。删除环境conda remove -n 环境名 --all另外补充一个克隆环境的技巧如果你要在一台新电脑上复现已有环境最省力的方式是先把原环境导出成配置文件conda activate 原环境名 conda env export environment.yaml然后在新电脑上执行conda env create -f environment.yaml这样能最大程度复现原环境的包版本和渠道信息。不过要注意导出的yaml文件里可能包含当前操作系统的具体路径比如一些包的URL在跨平台迁移时偶尔会出问题。我在Windows和Ubuntu之间迁移时一般只保留dependencies部分里顶层声明的包名去掉所有通过URL链接指定的包再手动装一次。4.2 环境的激活、切换与Jupyter内核注册创建完环境后使用前必须激活。Windows下执行conda activate pytorch_envmacOS和Linux同理。在较新版本的中文Windows系统控制台中可能需要先执行conda init保证环境激活脚本正确加载。激活后你会发现命令行前面出现了环境名比如(pytorch_env) C:\Users\...。此时再执行python --version显示的版本就是你创建环境时指定的Python版本。这说明当前命令行已经切换到这个虚拟环境了。接下来就是那种最让人困惑的情况在PyCharm里用这个环境的解释器运行代码没问题但在浏览器里打开Jupyter Notebook却始终导入不了这个环境里的包。原因在于Jupyter的内核列表独立于conda环境。你需要在你创建的环境里安装ipykernel并把内核注册到Jupyter。具体步骤conda activate pytorch_env conda install ipykernel python -m ipykernel install --user --namepytorch_env --display-name Python (pytorch_env)最后一条命令的含义是把当前环境注册为Jupyter的一个内核显示名称为Python (pytorch_env)。注册完成后打开Jupyter Notebook主页在New下拉菜单里就能看到你注册的内核名字。选中它新建Notebook遇到import不了包的问题就解决了。4.3 在虚拟环境里安装包的正确姿势激活环境后安装包有两条路conda install 包名从Anaconda的软件源安装自动解决依赖冲突pip install 包名从PyPI安装包通常更新但可能出现依赖不兼容。在conda和pip混用的时候有个容易踩的坑某些包通过conda安装后再用pip安装另一个包时pip会用its own dependency resolver重新解析可能导致底层包版本被覆盖。我的建议是尽量在同一个环境里固定用conda或者固定用pip至少确保每次操作顺序是可复现的。如果你要用PyTorch最好先按照PyTorch官网给出的conda命令来装全套依赖不要先pip半个再conda补半个。有一回帮学生排查环境她装了十几次PyTorch都报找不到torch模块最后发现原因是在conda虚拟环境里打开了Anaconda Prompt之后又通过python -m pip install torch安装了CPU版然后Jupyter里选的还是base内核。最后卸载重来直接在环境里conda install pytorch ... -c pytorch一次就通了。4.4 PyCharm中绑定Anaconda环境很多朋友装Anaconda是为了给PyCharm提供一个省心的Python解释器。绑定步骤在最新版PyCharm中非常直观打开PyCharm进入File→Settings→Project→Python Interpreter点击右上角齿轮图标选择Add Interpreter在弹出的界面左侧选Conda右侧Environment栏选择Existing之后在Interpreter栏里选择你希望绑定的环境路径比如C:\Users\你的用户名\anaconda3\envs\pytorch_env\python.exe。点击OK即可。有一点想特别提醒如果你在PyCharm里新建项目时直接选择Conda作为New environmentPyCharm会让你选择conda可执行文件的位置这个位置就是Anaconda安装目录下的Scripts\conda.exeWindows或者bin\condamacOS/Linux。选对了condaPyCharm才能自动读出你的环境和Python版本。绑定完成后写代码时右下角的状态栏会显示当前使用的环境名。如果import某个包时红色波浪线提示找不到先确认右下角环境切对了再到Settings里看解释器路径90%的问题都出在这两步。5. 爬坑实录新手最常碰到的十个Anaconda问题按照我的经验一个刚开始用Anaconda的人大概率会在下面这些地方卡住。我把高频问题按出现频率排了个序并给出可落地的处理方案。5.1 conda命令找不到这个问题我在前面提到过。如果你没勾选Add to PATH在普通命令行里输入conda会提示不是内部或外部命令。处理办法有三个任选其一从开始菜单打开Anaconda Prompt它已经帮你配置好了conda路径在系统环境变量PATH中添加C:\Users\用户名\anaconda3和C:\Users\用户名\anaconda3\Scripts路径以自己的安装目录为准在Anaconda Prompt里执行conda init cmd.exe以后普通cmd也能用conda。5.2 下载安装包慢得无法忍受Anaconda的包下载默认连接官方仓库国内速度不稳定。配置清华源是常见的解决办法。在命令行执行以下命令生成或修改.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配置完成后可以通过conda config --show channels确认。之后conda安装包时会优先从清华镜像下载速度提升非常明显。顺带说一句镜像源只是改变了下载地址不改变包的内容和依赖规则不用有顾虑。5.3 Jupyter Notebook打不开或闪退如果双击Jupyter图标后浏览器没有自动弹出常见原因是端口或其他程序被占用。先看命令行窗口输出的报错信息再检查防火墙是不是把Python进程拦截了。Windows上的解决方案通常是在终端里执行jupyter notebook --no-browser然后用浏览器手动输入http://localhost:8888访问。另外http://localhost:8888/tree无法访问时很可能你的.condarc里配置的SSL证书存在旧设执行conda config --set ssl_verify false能临时绕开部分证书问题但这个操作会降低安全性建议用完后改回来只在测试环境踩坑时临时使用。5.4 Notebook里import包报ModuleNotFoundError这个问题的根因几乎都是内核选错了环境。回到第4章的Jupyter内核注册部分按命令注册一次然后重启Kernel菜单栏Kernel→Restart再试。5.5 安装包时提示Solving environment卡住conda在解析依赖关系时可能卡几分钟这通常不是死机。等待即可但如果超过十分钟还没反应可能是有老版本的包和通道信息冲突按CtrlC取消然后优先尝试conda update conda。再或者你直接用pip install 包名来绕开conda的求解过程能缓解90%的等待焦虑。5.6 Anaconda安装包下到一半就失败Windows下面的下载容易因为网络波动中断。镜像实现断点续传比较麻烦最简单粗暴的办法是换一个浏览器下载或者换个位置的下载节点比如从清华镜像切到阿里云镜像服务器再试。5.7 创建环境时提示CondaHTTPError出现HTTP 000 CONNECTION FAILED这类错误通常是镜像源配置有问题。先检查配置文件路径然后在命令行执行conda clean -i conda config --remove-key channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/清掉缓存后重试。5.8 卸载Anaconda卸不干净definitely是入门用户的大烦恼。Windows上开始菜单里找到Anaconda文件夹运行Uninstall-Anaconda卸载后手动删除C:\Users\用户名\.conda目录、C:\Users\用户名\.anaconda目录如果之前勾选了Add to PATH还要在系统环境变量中手动删除Anaconda相关路径。macOS/Linux直接删除安装目录和.conda文件夹再检查~/.bashrc或~/.zshrc里是否残留conda init的配置段。5.9 anaconda和pycharm版本对应关系让人纠结这个问题其实没有想象中复杂。Anaconda自带的是某个Python版本PyCharm只是把当前环境里的Python解释器拿过来使用两者不存在必须匹配的关系。只要你在PyCharm的解释器设置里指向Anaconda环境下的python.exePyCharm就会自动识别该环境中的所有已安装包。5.10 装了Anaconda之后原来的Python项目跑不起来了如果是这样大概率因为你把Anaconda的Python路径排到了环境变量最前面原来的项目这时调用的是Anaconda的Python而项目依赖的第三方包又在原Python环境里。解决方案分两种项目继续用原Python把原Python路径移到环境变量最前面或者不用Anaconda的base环境直接创建一个专用环境并安装项目的依赖项目改用Anaconda环境在项目目录下重新安装依赖包然后激活对应环境运行。我的建议是既然决定用Anaconda就尽快给每个项目建立独立虚拟环境不再依赖系统原装的Python。6. 最后再分享几个让环境越用越顺的管护习惯安装Anaconda只是开始。我在实际使用中逐渐形成了一套小习惯这些方法能显著减少后续的问题分享给你参考。第一不把base环境当仓库。base环境相当于Anaconda自带的初始环境很多教程默认往里装各种各样的包最后导致base越用越臃肿。我的习惯是按项目粒度建环境比如数据清洗、机器学习、爬虫各自独立base环境保持Anaconda自带的状态不动。这样即使某个环境搞崩了删除重建成本也不高。第二定期整理环境列表。项目结束后或者一个学期结束时花几分钟用conda env list查看当前所有的环境把已经用不到的环境删掉。我见过不少人的电脑上躺着十几个名为test、untitled的环境硬盘占用几十GB删掉后整个世界都清静了。规则很简单环境名里带上项目关键词比如nlp_project、cv_practice半年后你还是能一眼看出这是什么项目。第三Jupyter和虚拟环境结合用。如果你习惯了Notebook记得在每次新建环境后顺手敲那三行ipykernel注册命令。一套标准操作就是创建环境→激活→装ipykernel→注册内核。把这四步固定成肌肉记忆以后就可以放心地在不同环境间自由切换。第四善用conda config维护镜像源。如果你换了网络环境或者发现某段时间下载特别慢先别慌着重装看一下当前配置文件清理掉不需要的旧通道。常用命令我再说一遍conda config --show channels conda config --remove channels 要删除的源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/配置完记得执行conda clean -a清理缓存有时候缓存里的坏家伙会反复导致安装失败。我在带新人的时候经常讲一句话Anaconda本身不神奇神奇的是它让Python环境管理变成了一件一次性花十分钟设置之后半年省心的事。如果你第一次接触这些概念觉得信息量很大不需要一次全记住只要先能安装成功、打开Jupyter、创建一个环境并绑定到PyCharm后面所有功能都是水到渠成的。遇到具体报错时也欢迎带着完整报错信息来交流。这些坑我基本都踩过而且踩完之后发现大部分问题背后都有一个特别朴素的原因只是大多数人刚入门时缺一个能把前因后果串起来的人。
