拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Anaconda入门详解:从环境管理到conda命令,避开新手坑

很多人学 Python 的第一步不是死在语法上而是死在一个叫 Anaconda 的东西上。下载安装包的时候它是个几百兆的“大家伙”装完打开 Anaconda Navigator 又被一堆图标唬住命令行里敲conda又不知道它在干嘛。网上教程东一句西一句有人说要装它有人说直接用原生 Python 就行结果彻底绕晕。我把话说直白一点Anaconda 不是某个编程软件也不是某个强力 IDE它就是一个“给 Python 用的全家桶安装包”。这篇文章我尽量不端着从它到底是啥、为啥这么多人用、怎么装、日常怎么操作到最容易踩的坑一次性讲透。读完你不需要再搜第二篇 Anaconda 教程除非你打算靠它吃饭、要深入源码那是另一个世界的事儿了。1. Anaconda 到底是什么先把这个概念掰开揉碎1.1 一句话理解它就是“带家具的 Python 精装房”Python 本身是一个解释器装到电脑上以后你等于拿到了一套毛坯房有最基本的水电标准库但想住得舒服跑数据分析、写科学计算、搞机器学习还得往里面添置一大堆家具——也就是第三方库比如 numpy、pandas、matplotlib、scikit-learn 这些。Anaconda 干的事就比较霸道了它把 Python 解释器、一大堆最常用的科学计算库、还有包管理和环境管理的工具全部打包好一次性给你。装完 Anaconda你不需要自己挨个敲命令装 pandas再用半天时间去解决“为什么这个库和那个库打架”的问题它就默认帮你把这些常用工具都塞进房间了。所以理解 Anaconda 最关键的一句话就是它是一个 Python 发行版不是一个独立的编程语言。你用它写代码底层用的还是 Python只不过它把这个语言生态里“新手最容易卡住的部分”提前帮你处理了。1.2 拆开看装 Anaconda 到底装了什么实际装完之后你电脑里会多出来这么几样东西Python 解释器本身Anaconda 附带了一个指定版本的 Python例如 Python 3.11 或 3.12这是后面跑代码的地基。conda 命令这是 Anaconda 的灵魂它同时是一个包管理器和一个环境管理器。包管理器用来安装、卸载、升级各种库环境管理器用来创建一个又一个“独立的小房间”避免不同项目之间库版本互相冲突。预装的一大批科学计算包包括 numpy、pandas、matplotlib、SciPy、scikit-learn、notebook、JupyterLab 等常见库。这些库如果让你自己拿 pip 一个个装光是下载编译就能让你折腾一晚上。另外还会附带 Anaconda Navigator图形化操作面板、Anaconda Prompt一个帮你配好环境变量的命令行窗口、Spyder一个类似 RStudio 的编辑器这些周边工具。这里多说一句很多人打开 Anaconda Navigator 被界面里密密麻麻的图标吓到但你日常真正高频用到的就是那个命令行工具Navigator 更多是给“不想敲命令的人”准备的入口。1.3 那 Miniconda 又是什么鬼很多教程写着写着突然冒出来一个 Miniconda初学者又开始懵这俩到底选谁两者关系特别简单Miniconda 是 Anaconda 的“精简版”只包含 Python 解释器和 conda那些预装的库一个都不带。相当于一个只有水电、没置办家具的毛坯房家具你得自己买。对比项AnacondaMiniconda安装包体积几百 MB 到 1GB 以上几十 MB预装库1500 常用库只有 conda 和 Python安装时间较长很快适合人群新手、数据科学/机器学习为主有经验、需要轻量环境的人怎么选如果你刚接触 Python、主要做数据分析或机器学习不用犹豫直接上 Anaconda省心。如果你已经知道自己要装哪些库、希望在每个环境里精简到最小那 Miniconda 更合适。2. 为什么要用 Anaconda它到底解决什么痛点2.1 没有 Anaconda 的时候装包能有多痛先回忆一下不用 Anaconda 的经典场景你在 Windows 上装好了官网下载的 Python然后项目需要一个叫做 pandas 的库你打开命令行敲pip install pandas结果发现报错说缺少什么VC build tools。好不容易装上 pandas 了后面又发现 matplotlib 和 numpy 的版本不兼容你想升级 numpy 但某个包又依赖旧版本。最后电脑里堆了一堆半残的包整个 Python 环境处于“能用但随时会崩”的状态。这背后的核心问题叫“依赖冲突”。拿生活类比你客厅想放一个新沙发结果发现门框太窄进不去非得把门拆了重装。装 Python 包也是A 库依赖 B 库的 1.2 版本C 库又依赖 B 库的 1.0 版本你自己手动解决这种版本冲突心态早崩了。Anaconda 的 conda 工具它的依赖解析做得比 pip 要“霸道”很多。它会自动帮你算清楚这次的安装动作会不会破坏已有的依赖关系如果冲突就拒绝安装或提示你先解决冲突。虽然这个过程有时候慢得让人着急但确实能在很大程度上防止环境被自己折腾坏。2.2 环境隔离一个房间装不下所有项目的时候做开发有一个需求是刚需不同项目之间用的库版本可能完全不一样。比如你手上有个老项目用的还是 pandas 0.25另一个新项目要用 pandas 2.0这俩 API 差别很大。你要是只有一个 Python 环境这俩项目只能“二选一”装了这个废了那个。全公司你负责的项目如果在别人电脑上跑不起来八成就是这种环境问题。conda 的环境隔离相当于给每个项目开了一个独立小房间房间 A 装 Python 3.8 pandas 0.25房间 B 装 Python 3.11 pandas 2.0互不干扰。你切项目的时候只需要在命令行敲一句conda activate 项目名就能“瞬移”到对应房间干活。这个小功能看起来不起眼但实际用起来真的能让你避免很多“我电脑上明明是好的”这种尴尬。2.3 conda 和 pip 到底谁更强很多教程提到装库的时候会说“用 pip install”那已经有了 conda 为什么还用 pip这里我按自己的经验把两者摆开讲一下pip 是 Python 官方的包管理器什么都能装PyPIPython 包索引上有几十万个包。但 pip 只管装 Python 包环境隔离能力很弱需要配合 venv 或者 virtualenv 使用。conda 是一个跨语言的包管理器它不仅能装 Python 包还能装一些非 Python 的底层库比如 HDF5、MKL、CUDA 相关工具链。在数据科学场景里很多底层库编译起来很痛苦conda 直接提供编译好的二进制文件省心不少。所以我的实际经验是能用 conda install 装的优先用 conda 装conda 上找不到或者版本太旧的再用 pip 兜底。混用本身没问题只要注意装进当前虚拟环境之前先conda activate激活对应环境别把包装错“房间”就行。这也就是 Anaconda 存在的意义它把 Python 的“基础施工”和“常用家具”都做完了让你把精力集中在写代码和分析数据上而不是整天和编译工具、路径配置、环境变量作斗争。3. Anaconda 安装全流程从下载到验证一气呵成3.1 下载去哪下官网和国内镜像怎么选下载 Anaconda我最推荐的是直接去官网 https://www.anaconda.com/download 下载最新版本。官网下载页一般会推荐你选 Python 3.12 版本的 64 位安装包除非你的电脑特别老或者有特殊的 32 位需求否则闭眼选 64 位就行。但官网服务器在国外很多人下载到一半就断或者速度几十 KB/s。这时候别死磕官网直接换国内镜像站比如清华大学的开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/。在这里找到以Anaconda3-2024.xx-Windows-x86_64.exe命名的文件下载速度和稳定性都会好很多。提示千万别从乱七八糟的第三方下载站下载 Anaconda那些网站上放的安装包很多是捆绑广告或者被修改过的轻则装一堆垃圾软件重则安全出问题。Anaconda 这种基础工具官方或权威镜像永远是最优先选择。另外有人下载文件时发现文件名里有Anaconda3会担心是不是只支持 Python 3。实际上这只是历史命名习惯新版本 Anaconda 都会内置对应版本的 Python 3用就完了。3.2 Windows 安装两个勾选框的选择题Windows 下安装 Anaconda 基本上就是一路 Next但有两个关键勾选会直接影响你后面的使用体验这里单独展开说。双击安装包之后注意看安装选项第一个选项是 “Install for: Just Me / All Users”。我建议选Just Me这是个人开发最常选的。选 All Users 需要管理员权限后续使用经常碰到权限问题得不偿失。安装路径要特别注意别把路径设成带中文或空格的路径比如D:\Program Files\Anaconda3这样就有问题。建议直接用默认路径或者改成最简单的D:\Anaconda3很多人后面卡在“conda 不是内部或外部命令”就有一小部分原因是安装路径太复杂。走到 Advanced Installation Options 那一步会有两个很关键的勾选框“Add Anaconda3 to my PATH environment variable”官方默认是不勾的很多人看不懂。这个选项的意思是把 conda 和 python 命令加到系统环境变量那样你随手打开 cmd 就能敲 conda 命令。但官方为什么不推荐勾因为这会和电脑里已经安装的其他 Python 解释器冲突容易造成“到底哪个 python 在跑”的混乱。“Register Anaconda3 as my default Python 3.12”这个我建议勾上让 Anaconda 管理的 Python 成为系统默认 Python这样你用 PyCharm 或者其他开发工具的时候能自动识别到 Anaconda 的环境。那到底要不要勾 Add to PATH我的建议是刚开始学、想省事的可以不勾。因为 Anaconda 装完会自带一个叫 “Anaconda Prompt” 的命令行入口点击它就自动进入了 conda 环境不需要你自己配 PATH。等你对命令行越来越熟再手动把路径加进去也不迟。但如果你已经有一定经验、知道自己需要全局访问 conda那可以直接勾上。安装完以后在开始菜单里找到 “Anaconda Prompt”打开后输入下面的命令验证是不是装好了conda --version python --version如果两个命令都有输出说明安装成功你的 Anaconda 已经可以服役了。3.3 macOS 和 Linux 安装一条命令搞定在 macOS 和 Linux 上Anaconda 的安装方式非常类似都是下载.sh脚本文件然后执行bash Anaconda3-xxx-MacOSX-x86_64.sh文件名根据你下载的版本不同会有差别记得替换成实际的文件名脚本执行过程中它会问你是否接受许可证协议一直回车看协议、再敲yes就行。接着它会让你确认安装目录默认是~/anaconda3这个不用改。最后会问你是否要把 Anaconda 初始化让它自动配置 shell 环境这步直接yes。装完之后关掉终端重新打开然后试试conda --version能输出版本号就成了。注意一个细节如果用的是 macOS M 系列芯片下载时优先选择文件名里带arm64的版本如果是 Intel 芯片就选x86_64。选错型号不是不能用而是可能出现一些莫名其妙的库兼容性问题。3.4 装完必做的三件小事安装成功并不代表万事大吉我习惯上会立刻做三件事能省下后面大量折腾的功夫。第一件事是更新 conda 本身。Anaconda 自带的 conda 版本可能是几个月前的先升个级conda update conda第二件事是设置国内镜像源因为 Anaconda 默认的官方源在国外国内访问速度很不稳定。这里以清华源为例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 install装东西速度会快一个档次。第三件事是顺手把 pip 的镜像源也换成国内源不然以后在 conda 里用 pip 装包还是慢吞吞的。执行下面的命令即可pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这三步做完基础体验已经比大部分人顺畅了。注意如果你是公司内网环境、有特殊网络策略可能無法访问外部镜像那就先用默认源和 pip 官方源网络的事情不在本文讨论范围内。但大多数个人开发者配了国内镜像之后体验提升非常明显。4. 日常核心操作conda 的常用命令与真实使用习惯4.1 环境管理的四个高频命令装了 Anaconda 之后你每天打交道最多的就是 conda 的环境命令。我把自己平时使用频率最高的四组命令拆开来说创建环境。很多人看到conda create -n就头皮发麻其实它就是这个意思conda create -n myproject python3.10这条命令会创建一个名为myproject的独立环境并且在这个环境里装一个 Python 3.10。这就相当于你在一栋楼里给自己分了一个新房间并且决定这个房间里用哪个版本的“水电标准”。进入和退出环境。创建完环境之后要干这个环境的活儿必须先进去conda activate myproject激活之后你的命令行提示符前面会多一个(myproject)提醒你现在正处于哪个“房间”。干完活想回老家base 环境就敲conda deactivate列出所有环境。时间久了环境一多容易忘记自己建过啥敲这个命令一目了然conda env list输出会把当前所在的环境用星号标出来看着就明白自己现在在哪儿。删除环境。有些环境实验完就不要了直接删掉干净利落conda remove -n myproject --all提示conda remove -n被很多人忽略实际上它是最省心的清理工具。比起手动去目录里删文件这个命令能把环境相关的所有东西都清干净也不怕误删别的环境。4.2 装包到底用 conda 还是 pip安安静静的环境建好之后接下来就是往里面装各种库。我的习惯分场景走常见的数据科学库比如 numpy、pandas、matplotlib、scipy直接走 condaconda install numpy pandas matplotlibconda 的好处是它会自动帮你处理依赖不会出现把 numpy 装上之后 scipy 崩掉的情况。冷门或最新的库或者 conda 上找不到的库就走 pip 兜底pip install requests这里必须强调一个重要习惯在敲 pip install 之前先确认当前在虚拟环境里。否则 pip 会默默装到 base 环境里时间长了你的 base 环境就变成一个大杂烩最后自己都不敢乱动。另外如果你发现conda install在某些包上一直卡在 “Solving environment” 一动不动有两个解决办法一是给 conda 换用更快的依赖解析器新版 conda 支持 libmamba solver二是别死磕 conda直接切到 pip 装这个包。很多包在 PyPI 上的更新速度本来就比 conda 快用 pip 反而省心。4.3 包到底装没装上如何检查和卸载环境用久了最好时不时检查一下当前环境里都有什么包conda list这个命令会输出当前环境下所有包的名字和版本号。想特意查看某个包在镜像库里有哪些版本用conda search pandas想卸载某个不用的包就用conda remove pandas这套“查看-搜索-安装-卸载”的流程基本上覆盖了日常包管理的全部动作比在图形界面里点点点高效得多。4.4 在 Jupyter Notebook 里切换不同环境很多用 Anaconda 的人实际写代码的入口是 Jupyter Notebook 或者 JupyterLab。但这里有一个很常见的问题我在命令行conda activate切到了虚拟环境在 Notebook 里却发现 Import 的还是 base 环境的包。原因很简单Notebook 的内核kernel是注册在全局的默认只认识 base 环境。想让某个虚拟环境出现在 Notebook 的“新建”菜单里需要手动注册一下conda activate myproject pip install ipykernel python -m ipykernel install --user --name myproject --display-name Python (myproject)注册之后刷新 Jupyter 页面新建 Notebook 的下拉菜单里就会看到 “Python (myproject)”选它就能在 Notebook 里正确使用对应环境了。如果不小心把内核名注册错乱想看当前已注册的内核可以执行jupyter kernelspec list不需要的内核可以删掉jupyter kernelspec remove myproject这个操作比较隐蔽很多教程不提但实际使用中几乎必用。4.5 环境迁移换电脑一点都不慌Anaconda 还有个隐藏福利环境导出和重建。我之前有一次换新电脑旧电脑上辛苦配好的一套环境靠一个文件就全搬到新电脑上了。旧电脑上先导出当前环境的所有包信息conda activate myproject conda env export environment.yml把这个environment.yml文件传到新电脑上然后在新电脑上执行conda env create -f environment.yml新电脑上就会自动重建一个一模一样的虚拟环境包括包版本都给你对好。这招在团队协作时尤其好用项目里带上一个environment.yml任何人拉下代码都能把环境恢复得八九不离十不用再一个个包手动装。有一点要提醒conda env export导出的文件里会包含当前系统路径比如prefix: /Users/xxx/anaconda3/envs/myproject换电脑重建时最好手动在 yml 里删掉这个 prefix 那一行不然可能报路径错误。5. 新手最容易踩的坑常见问题与排查实录5.1 “conda 不是内部或外部命令”怎么办这个是 Windows 用户最先碰到的坑。装完 Anaconda打开 cmd 输conda --version结果提示“不是内部或外部命令”。原因基本只有一个安装时没有把 Anaconda 加进环境变量。解决方法也不难。如果你用的是 Anaconda Prompt直接打开它敲命令就行Anaconda Prompt 会自动帮你加载 Anaconda 的环境变量。如果你就想用普通的 cmd 或者 Windows Terminal那得手动添加环境变量。按 “Win S” 搜索“环境变量”点击“编辑系统环境变量”在“系统变量”里找到 Path把 Anaconda 相关的路径加进去。一般需要加三条D:\Anaconda3 D:\Anaconda3\Scripts D:\Anaconda3\Library\bin路径要换成你自己的实际安装目录加完记得重新打开命令行窗口让环境变量生效。注意如果安装时勾选了 “Add to PATH”系统自动帮你配好了就不用再手动加。5.2 下载慢、安装包卡死的终极对策这里要先分清楚“慢”发生在哪个阶段。如果是装 Anaconda 本体下载慢用国内镜像站下载安装包如果是conda install装库慢就用国内 conda channel 源。具体怎么配前面已经写过了这里不再重复。但还有一种慢是 conda 在 “Solving environment” 阶段卡住好像读条不走了。这其实是老版本 conda 依赖解析算法效率低尤其当环境里包很多、依赖关系复杂的时候它要算半天。我自己的解决思路是启用 conda 的 libmamba solver。新版 conda23.x 之后都支持了只需要执行conda install -n base conda-libmamba-solver conda config --set solver libmamba实测之后很多原来要卡几分钟的安装动作十几秒就出结果了谁用谁知道。5.3 激活虚拟环境后命令前面没有 (myproject)在 Windows 上用 PowerShell 或者 cmd 的时候偶尔会发现conda activate myproject明明没报错但命令行前面没有出现环境名。这种情况大概率是权限策略问题。PowerShell 下先执行conda init powershell然后重启终端。如果重启之后仍提示脚本执行受限执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser如果是老式 cmd则试一下conda init cmd.exe之后再重新打开窗口。很多时候问题就是 init 没做Shell 不认识 conda 的激活脚本。5.4 环境里 Python 版本想换怎么办初学者经常犯一个错误建环境的时候没想清楚要求建到一半发现 Python 版本选错了于是想 “python 3.10 升到 3.11”。这个操作不是说完全不行但很容易把环境里的库搞乱我强烈不建议在同一环境内反复升降 Python 版本。正确做法是直接新建环境conda create -n newenv python3.11然后把旧环境的包记录导出来在新环境里重建或者干脆把旧环境删了重建。方法永远比硬刚来的快。在 base 环境下也是一样别没事去conda install python3.11升级 base 的 Python真的没有必要。base 环境就是拿来管理 conda 的“根据地”你升级它反而容易把 Anaconda 自己依赖的一些工具搞挂。5.5 环境多到崩溃给环境命名的几个经验最后一个经验分享是环境命名。我见过有人把环境命名为test、new、final、final2过了俩月回来看自己都不知道是干嘛用的。我的建议是环境名最好带上项目或库版本标识例如nlp_bert、pandas2_exp、cv_yolo这类风格。一眼过去就知道这个环境服务什么项目、大概什么技术栈。另外常用的小项目企环境可以直接在 conda 里精简包少花时间在装包上多把时间留给项目本身。环境随便建、随便删Anaconda 最让人安心的一点就是它足够耐折腾坏了不心疼删了再来就行。6. 聊点实在的我用 Anaconda 这些年的一些体会我个人接触 Anaconda 算比较早了从最开始完全不懂环境概念、把什么包都往 base 里装到后来被依赖问题折磨到怀疑人生再到现在靠虚拟环境和 conda 的依赖解析省下大量时间这条路几乎是每个数据科学从业者都要走一遍的。有些零基础的朋友问我是不是一定要用 Anaconda。我的回答是如果你是做数据分析、机器学习方向直接装 Anaconda 是最省心的入门方式如果你只是写点小脚本、做点 Web 开发那原生 Python 加 venv 也够用Anaconda 反而显重。这一点大家根据实际情况权衡就好。想跟新手叮嘱一句不要怕在 Anaconda 里创建新环境。很多人在虚拟环境之间切来切去会觉得麻烦宁可把所有包都堆在 base 里最后环境乱成一锅粥。其实 conda 的环境管理就是用来折腾的你建一个环境、装一堆包、玩坏了删掉重建整个过程成本非常低。真正可怕的不是环境不够多而是一个环境里塞满不兼容的东西最后连启动都费劲。如果说现在让我给刚接触 Python 的人总结一套“Anaconda 够用指南”那就四件事装完先换源建环境用 conda装包优先 conda、不行再 pip重要项目记得丢一个 environment.yml 出来。把这四件事刻在脑子里你就不太可能被 Python 环境问题卡住。最后再分享一个小技巧如果你发现某个环境里的包配得非常顺手不想以后重装那就给它导出一份配置备着。这份 yml 文件不占多少空间却能在电脑出问题或者换电脑时帮你把一整套环境原封不动搬回来实用得很。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门