ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Anaconda零基础安装配置教程:从conda环境到Jupyter Notebook实践

Anaconda零基础安装配置教程:从conda环境到Jupyter Notebook实践 做Python开发这几年被问得最多的一个问题是我刚学Python到底要不要装Anaconda我的答案一直很明确如果你要做数据分析、机器学习或者只是刚接触Python生态那不仅建议装而且建议第一个装的就是它。Anaconda自带Python解释器、包管理工具conda和Jupyter Notebook把环境管理、依赖安装、交互式编程一次性全解决省掉新手最头疼的环境配置环节。这篇教程就是写给零基础入门者的我会用最直白的方式把Anaconda的下载、安装、配置、使用以及Jupyter Notebook的常用操作全部讲清楚。你不需要有任何命令行基础照着步骤来就能把环境搭起来而且每步为什么要这么做我也一并说透。1. 装之前先搞清楚几个基本问题1.1 Anaconda到底解决了什么问题很多新手在装Python之前其实并不清楚自己需要什么。如果直接从python.org下载Python解释器你得到的只是一个空荡荡的运行时想装第三方库还得手动用pip一个个装装多了版本还会互相打架。而Anaconda是一个发行版它把Python解释器、常用科学计算库NumPy、Pandas、Matplotlib等、包管理器conda、以及Jupyter Notebook全部打包在一起。装好之后你不需要再单独配置任何东西打开就能写代码、做数据分析。这里有个很容易忽略的点Anaconda本身是个发行版它带的Python解释器和你从官网下载的Python在本质上没有区别差别在于Anaconda帮你预装了几百个常用包并且用conda管理这些包的版本依赖。对于入门来说最直接的好处就是开箱即用——不用折腾环境不用纠结装什么库省下来的时间可以全部花在学语法和写代码上。另外Anaconda还附带了一个图形界面Anaconda Navigator你可以在里面点鼠标创建环境、安装软件包、启动Jupyter Notebook。对完全没碰过命令行的新手来说这个界面友好得多。不过我的建议是图形界面能帮你度过最初两周但一定要尽早开始用命令行因为后续深入下去conda命令的效率是图形界面完全比不了的。1.2 conda与pip两个包管理器的区别初学阶段很多人分不清conda和pip以为它们是同一个东西。它俩有重叠的功能定位却很不一样。pip是Python官方的包安装工具专门用来安装PyPIPython Package Index上的包。conda是Anaconda自带的包管理工具它不仅管Python包还能管非Python的依赖比如C/C库、CUDA相关的驱动库、编译器等。举个例子你在Windows上装一些包含C扩展的包比如某些图像处理库pip经常在编译环节报错但conda安装的是预编译好的二进制版本直接就能用省事得多。再比如你想装PyTorch这类框架conda能一并处理它依赖的底层库而用pip时可能需要自己手动补齐依赖。那是不是有了conda就不需要pip了也不是。有些小众包只发布在PyPI上conda源里没有这时候还是得用pip。实操中的做法是conda优先conda装不到再用pip而且尽量在conda环境里用pip装完了及时用conda list检查一下环境状态避免依赖被pip弄乱。这个习惯很重要我后面还会讲到。1.3 虚拟环境为什么要做环境隔离再解释一个新手最容易忽视的概念——虚拟环境。你写项目A时可能用了Python 3.9加某个库的1.x版本写项目B时又需要Python 3.11加同一个库的2.x版本如果全装在同一个全局环境里装A就会搞坏B装B又会搞坏A。虚拟环境就是给每个项目开一个独立的房间各自装各自的依赖互不干扰。conda创建虚拟环境极其简单一条命令就能完成这也是Anaconda在众多Python发行版中脱颖而出的核心原因之一。后面实操部分我会带你把创建环境、激活环境、在环境里装包、切换环境完整走一遍。提前说一句不管你是用Anaconda还是只用原生pip虚拟环境这个习惯都值得从第一天就养成。2. 安装Anaconda下载、安装、验证一条龙2.1 安装包从哪里下载最靠谱下载是第一步也是很多人卡住的地方。Anaconda安装包体积在几百MB到1GB不等官方下载地址是Anaconda官网的下载页面选择自己系统对应的版本即可。不过官网服务器在国外国内用户下载速度往往很慢经常下到一半就失败。这种情况下推荐使用清华大学开源软件镜像站。镜像站是官方包的完整拷贝内容和官网完全一致下载速度却快很多。进入镜像站后找到Anaconda的archive目录里面按时间列出了所有历史版本。新手我建议直接挑最新版本下载文件名一般是Anaconda3-版本号-系统架构.exeWindows或对应的.shLinux/.pkgmacOS。这里有个细节必须提醒看清系统架构。绝大多数Windows电脑是64位就下载x86_64版本别下成32位。苹果电脑则要看芯片类型M系列芯片选arm64版本Intel芯片选x86_64版本。装错架构虽然能装上但后面装某些包时会遇到莫名其妙的兼容问题。2.2 Windows完整安装步骤拿到exe安装包之后双击运行整个流程就是一路Next但中间有三个选择需要认真对待。第一个是选择安装位置默认装在当前用户的目录下比如C:\Users\你的用户名\anaconda3建议保持默认。不建议装到C盘以外的自定义目录因为某些配套工具对路径里的空格和中文目录名兼容性不好一旦出问题排查起来非常麻烦。第二个选择是是否把你的Anaconda添加进系统PATH环境变量安装界面会明确提示Not recommended。默认选项是不勾选我建议新手也保持不勾选原因我在下一小节单独讲。第三个选择是Register Anaconda as my default Python也就是把Anaconda设为系统默认Python可以保持勾选这样后续开发工具能自动识别到它。安装过程比较久从几分钟到十几分钟不等。装完后不用急着关可以顺手把Visual Studio Code这个勾选项也选上这是微软出的免费编辑器后面写Python代码会用到一起装省得再单独配。2.3 那个PATH复选框到底要不要勾安装界面里有一句Add Anaconda3 to my PATH environment variable的说明后面跟着Not recommended很多新手不明白为什么官方自己不推荐勾选。原因在于如果你电脑上之前装过别的Python勾选之后会把Anaconda的Python和原来的Python混在一起可能导致命令行里输入python进入的是Anaconda的版本而原来项目的脚本却期待旧版本环境一乱各种问题随之而来。但这里也有个矛盾很多新手在命令行里输conda发现找不到命令就是因为没勾选PATH。那到底怎么选我的建议是如果你是纯粹的Python新手电脑上没有别的Python环境勾不勾选都能正常用——但你得习惯用Anaconda Prompt而不是普通的cmd窗口。Anaconda Prompt会在启动时自动加载conda环境变量相当于一个已经配好环境的命令行在这个窗口里输入conda、python、jupyter这些命令都能正常工作。如果你电脑上已经装了别的Python那就保持默认不勾选之后始终通过Anaconda Prompt进入命令行。顺便说一句遇到网上教程让你手动加环境变量时先别急着操作绝大多数场景下用Anaconda Prompt就够了手动改PATH反而容易埋雷。2.4 安装完怎么验证装成功了安装完成后先在Windows开始菜单里找到Anaconda Prompt并打开输入conda --version能看到类似conda 24.x.x的输出就说明conda已经可用了。再输入python --version如果显示的版本号和你下载的Anaconda版本自带的Python版本对得上比如Anaconda3-2024.06对应Python 3.11或3.12说明安装无误。我还习惯做另一项检查输入conda info会显示当前conda的配置信息、环境路径、channel源等。从这里可以看到默认环境base的位置。如果这些命令都正常那安装过程就算彻底成功了可以放心进入下一步。如果输入conda提示不是内部或外部命令多半是环境变量没有生效请回到Anaconda Prompt窗口里操作或者在开始菜单重新打开一次Anaconda Prompt再试。3. Anaconda第一次使用图形界面和命令行3.1 Anaconda Navigator能做什么装完后从开始菜单打开Anaconda Navigator你会看到一个图形化界面上面列着Anaconda自带的各个工具比如Jupyter Notebook、Spyder、VS Code等还显示当前的conda环境和已安装的包。这个界面的最大价值就是可视化你可以在Environment选项卡里查看当前环境装了哪些包可以在Home选项卡里一键启动Jupyter Notebook可以在左侧的Channels里管理软件源。对新手来说Navigator最常用到的功能是在Environment里创建新环境。点Create输入环境名选择Python版本它会自动帮你搭好一个干净的环境。创建完切换过去界面会显示这个环境里预装的基础包后续还可以在搜索框里输入包名来勾选安装。整个过程全程鼠标操作非常直观。不过我要坦白说Navigator的便利恰恰也是它的局限。以我的经验如果你准备长期做开发Navigator只适合作为可视化巡检工具真正高频操作还是要在命令行里完成。因为命令行有可复制、可脚本化、可追溯的特点同样一个环境用命令创建和用鼠标创建前者还能把命令存进文档以后换电脑照着跑一遍就恢复环境。3.2 conda命令行速查创建环境、激活环境、装包命令行是Anaconda真正的核心。打开Anaconda Prompt先记住这几条命令就够了。创建环境用conda create -n 环境名 python版本号比如conda create -n myenv python3.10conda会先解析依赖然后询问你是否继续下载安装输入y确认。激活环境用conda activate myenv激活后命令行提示符前面会出现(myenv)字样这就表示你现在处于这个虚拟环境里了。退出环境用conda deactivate回到base环境。在环境里安装包用conda install 包名同时安装多个包就用空格隔开conda install numpy pandas matplotlib。查看当前环境所有安装的包用conda list查看环境中某个包的具体版本也用这条命令加包名过滤。删除环境用conda env remove -n myenv。复制一个环境做备份用conda create -n myenv_backup --clone myenv。这里我要特别强调激活环境的顺序。很多人装完包发现import不了排来排去最后发现是包的安装位置搞错了在base环境里装了包却在myenv环境里跑代码当然找不到。所以养成一个肌肉记忆任何操作之前先看一眼命令行前缀是(base)还是(myenv)确认当前在哪个环境再动手。3.3 配置国内镜像源告别下载慢conda默认的软件源在国外国内用户安装包时经常卡在Solving environment或者下载速度只有几十KB/s。好在conda支持切换镜像源。以清华镜像为例在Anaconda Prompt里依次输入下面两条命令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就能看到已经添加的镜像地址。正常情况下channel已经带上了https://mirrors.tuna.tsinghua.edu.cn/...前缀之后再装包速度就会有明显提升。如果你发现某些包在清华主镜像里找不到还可以考虑中科大镜像源或者阿里云的conda镜像。但提醒一句不要一下子把好几个镜像源全部加进去因为conda会按照channel顺序挨个查找源太多反而会拖慢解析速度甚至引发版本匹配混乱。最多保留一两个常用源就够了。另外我见过有人反馈配置完源之后出现CondaHTTPError或SSL证书相关报错遇到这种情况先检查网络连接再看一下是不是把channel地址末尾的斜杠丢了这两处是最常见的出错点。4. Jupyter Notebook从启动到熟练4.1 启动方式与界面构成Jupyter Notebook是Anaconda自带的交互式编程工具特别适合做数据分析、演示代码、记录学习笔记。它把代码、运行结果、Markdown文字、数学公式、图表全部融合在一个文档里你在浏览器中编辑和运行体验很像一个增强版的交互式文档。启动方式有两种。一种是在Anaconda Navigator的Home页面里点击Jupyter Notebook的Launch按钮。另一种是在Anaconda Prompt里输入jupyter notebook系统会自动打开浏览器进入Notebook主页。我更推荐第二种方式因为它会让你明确知道Notebook是跑在哪个环境里的——这一点很关键后面细说。启动后浏览器里会出现一个文件列表界面显示你当前工作目录下的文件。点击右上角的New按钮选择Python 3或者你创建的环境名就会新建一个Notebook文件扩展名.ipynb进入编辑页面。页面主体由一个一个的单元格组成每个单元格默认是代码类型在里面输入Python代码后按ShiftEnter就可以运行输出会直接显示在单元格下方非常直观。4.2 单元格类型与MarkdownNotebook的每个单元格都可以切换类型最常见的两种是代码Code和MarkdownMarkdown。代码单元格用来写Python代码运行后显示输出结果。Markdown单元格用来写说明文字支持加粗、标题、列表、链接还能用LaTeX写数学公式。要修改单元格类型在工具栏下拉框里选或者用快捷键M切换到Markdown、Y切换回代码。我建议从第一天起就养成代码配说明的写作习惯每个分析步骤之前先用一个Markdown单元格写下你要做什么、为什么这么做。这样你的Notebook既是一份可以执行的代码又是一份可以给别人看的分析报告。很多知名开源项目里的示例Notebook都是这种结构值得模仿。另外单元格的运行状态需要留意当单元格正在执行时左侧的In []会变成In [*]括号里出现星号说明代码还在跑运行完成则会变成In [1]这样的编号。如果你的程序看起来卡住了先看看是不是处于In [*]状态区分在运行和真卡死再决定要不要强制中断。4.3 必会的快捷键Jupyter Notebook用快捷键能明显提升效率。以下这几组最常用建议背下来ShiftEnter运行当前单元格并进入下一个单元格CtrlEnter运行当前单元格但不跳转AltEnter运行当前单元格并向下新建一个单元格Esc进入命令模式此时可以管理单元格A / B在当前位置上方/下方新建单元格DD连续按两次D删除当前单元格M / Y切换单元格为Markdown / 代码ShiftTab查看函数的帮助文档命令模式的概念有点绕不用着急——你只需要记得在单元格外面按Esc会进入命令模式这时候按字母键是操作单元格而不是输入内容。如果不小心按出一堆字母莫名其妙多半就是进入了命令模式按一下Enter或者Y就能切回编辑状态。还有一个功能容易被忽略菜单栏的Kernel内核菜单。里面有三项功能你要会用Restart重启内核、Restart Clear Output重启并清空输出、Restart Run All重启并从头运行所有单元格。当变量的定义顺序乱了、或者装完新包后需要重新加载时就用Restart Run All这相当于给整个Notebook做一次干净的从头执行比对单元格逐个点运行要可靠得多。4.4 魔法命令与指定内核Jupyter Notebook提供了一类以%开头的魔法命令它们不是Python语法而是Notebook特有的便捷指令但对实际操作帮助很大。最常用的几个%matplotlib inline让matplotlib绘制的图表直接显示在单元格下方而不弹出一个单独的窗口。做数据分析基本每次都会用到。%time和%timeit统计单行代码的执行时间用来快速评估代码性能。!加shell命令!pip install 包名可以直接在Notebook里安装包相当于不用切回命令行执行系统命令。%who查看当前环境中定义了哪些变量。还有一个新手特别容易混淆的点Notebook右上角显示的内核名字并不一定等于你当前想用的环境。举个例子你在Anaconda Prompt里激活了myenv然后启动jupyter notebook打开的Notebook默认可能仍是base环境的内核跑代码用的是Python 3base而不是myenv的版本。解决办法是在Notebook菜单里选择Kernel - Change Kernel然后选到myenv对应的内核。如果列表里没有myenv这个选项需要在命令行先给这个环境装ipykernel包然后执行python -m ipykernel install --user --name myenv把它注册进Jupyter的内核列表里。5. 新手最容易踩的坑与排查方案5.1 conda命令找不到怎么办最经典的报错是输入conda时提示conda不是内部或外部命令。如果你用的是Windows并且当初没勾选PATH正常打开开始菜单里的Anaconda Prompt是不会出这个问题的因为Prompt会自动加载配置。如果你是在普通的cmd或者PowerShell里输入conda那大概率就是环境变量没配置。建议的排查顺序是先确认自己是不是在Anaconda Prompt窗口里如果是在别的终端里输入换成Anaconda Prompt再试。如果你的确有需要在普通终端里用conda的需求那就手动把Anaconda的Scripts目录和Library/bin目录加入系统PATH但操作前一定做好备份操作完重启终端验证。整个过程中别同时开多个终端窗口测试因为环境变量的读取是在终端启动时就完成的改完之后必须开一个新终端窗口才会生效。5.2 Jupyter打不开或连不上内核启动jupyter notebook后浏览器没自动打开这种情况不用慌从终端窗口的输出信息里能看到一个URL链接形如http://localhost:8888/?token一串字符手动复制到浏览器地址栏打开就好。如果打开了页面却新建Notebook时报错提示内核一直连接不上多数原因是内核对应的环境有问题。我的处理经验是三步走第一步在Notebook页面里先试着Kernel - Restart很多时候是内核进程假死第二步如果Restart没用回到Anaconda Prompt里用conda install ipykernel或者pip install ipykernel把内核组件重装一遍再执行python -m ipykernel install --user --name 你的环境名重新注册第三步如果还不行重启一下电脑再启动Jupyter别小看这个笨办法确实能解决一部分资源占用导致的诡异问题。还有一个坑端口被占用。如果启动时提示端口已被占用可以用jupyter notebook --port 8899指定一个新的端口。5.3 环境搞混了包装错了位置这是我在各种教程底下见过最多的求助帖明明conda install装了包运行Jupyter时却ModuleNotFoundError。几乎都是环境混淆导致的。原因我已经在前面提过Jupyter的内核指向了base环境但你实际需要的是myenv环境里的包或者反过来你在base里装了包代码却在myenv里跑。排查方法其实很简单在Notebook的代码单元格里执行下面两行看输出的路径指向哪里import sys print(sys.executable)如果输出的路径是...anaconda3\python.exe说明当前内核是base环境如果输出的是...envs\myenv\python.exe说明内核已经是myenv。确认之后再用Kernel - Change Kernel切换到你真正需要的内核即可。如果这个习惯能坚持下来你会在环境管理上少踩很多坑。5.4 依赖冲突和磁盘占用问题conda用久了会积累大量包缓存和临时文件一个最直观的现象是环境目录体积越来越大甚至安装新包时提示磁盘空间不足。处理方法是定期清理缓存conda clean --all可以清掉下载缓存和临时包。如果长期不用的环境确定不会再碰就用conda env remove -n 环境名删掉能释放不少空间。至于依赖冲突大多发生在混用pip和conda的场景。比如用conda装了某个包后又用pip装了同一个包的不同版本版本解析就会出问题。我的建议是一个环境里尽量统一用conda管理包确实需要pip时在requirements.txt里记录清楚并且装完pip包后用conda list复核环境状态。进阶用户可以考虑用conda env export environment.yml把环境完整导出换机器时用conda env create -f environment.yml一键重建环境。这套流程虽然入门阶段用不上但值得提前知道。另外还有一个小问题出现频率很高Anaconda启动后界面卡死或者白屏。大多数情况下是Navigator的bug或者网络加载导致先关掉重开如果反复出现清理一下C:\Users\你的用户名\.conda目录下的缓存再不行就更新conda本身conda update conda。遇到界面问题先别急着卸载重装很多问题更新一下就能解决。最后再分享两个我个人的使用习惯。第一从装好的第一天起就坚持一个项目一个环境的原则哪怕项目再小也新建独立环境这样能保证任何项目都不会因为环境变更而突然跑不起来。第二给环境命名时用项目名而不是testceshi这种无意义的名字名字里带上Python版本信息比如myproj_py310几个月后你自己看到还能想起来这个环境是干什么的。这套模式陪我走过了好几个完整项目从来没有因为环境问题耽误过正事。你照着装完、跑通第一个Notebook之后多半也会体会到这种环境顺了写代码才顺的感觉。
返回列表