如果你在Ubuntu上做Python开发迟早会遇到一个问题系统自带的Python版本不够用或者项目依赖冲突到怀疑人生。我最近在一台新换的Ubuntu 22.04上重装了Anaconda3顺便把整个过程完整梳理了一遍。这篇博文就讲清楚Anaconda3在Ubuntu上从下载、安装到配置国内镜像源、创建虚拟环境的全部流程适合同刚接触Linux的Python开发者也适合想彻底重装一次环境的老手。很多人觉得Anaconda3安装是个“下一步下一步”的事其实里面坑不少下载慢、路径选错、conda命令找不到、装完还把系统Python搞乱任何一个问题都能卡你半小时。这篇不是简单的命令堆砌我会把每个步骤背后的原因讲明白你再遇到类似问题就知道该怎么判断了。1. 装之前先把这几件事想清楚1.1 Anaconda3到底是什么为什么Python开发绕不开它Anaconda3本质上是“Python解释器 conda包管理器 一大堆预装科学计算库”的集合。它和普通Python安装最大的区别就是自带conda这个环境管理工具。你可以把conda理解成一个“应用商店多开工具”一方面它负责下载、安装、升级Python包另一方面它可以创建多个互相隔离的Python环境每个环境里有自己独立的Python版本和依赖库。打个比方你手机里可以装两个微信一个生活用、一个工作用互不干扰。conda的环境就是给Python项目装“应用分身”。项目A要用Python 3.8和旧版TensorFlow项目B要用Python 3.11和最新版PyTorch用conda分别建两个环境就行谁也不用迁就谁。没有conda的时候很多人只能用虚拟环境工具venv那个也能用但对非Python原生编译的包比如带C扩展的科学计算库管理起来没conda那么省心。我在实际中见过太多人因为Python依赖冲突耽误一整天装了一个包把另一个包升级了结果原来的项目跑不起来了。用了Anaconda3之后这类问题基本从根源上消失了因为每个环境都是独立的一套库集合互不影响。1.2 装Anaconda3还是Miniconda我给你实在建议这个是安装前第一个要做的选择。Anaconda3完整安装包大约600MB到700MB装完会预装NumPy、Pandas、Matplotlib、SciPy、Jupyter这些常用库开箱即用。Miniconda只有大概80MB只带conda和一个干净的Python其余库全部需要自己装。我的建议很直接如果你是数据分析、机器学习方向或者懒得一个一个手动装库直接上Anaconda3省心。如果你只想统一管理Python环境或者硬盘空间比较紧张就选Miniconda缺什么装什么不会有一堆用不上的包占地方。我自己现在的习惯是主力机装Miniconda因为很多库其实项目里用不到装一个Anaconda3纯属浪费空间。但如果你按照这篇教程操练装哪个都行后面步骤一样只是安装包大小和预装内容有区别。1.3 安装前的基础检查版本、空间、网络动手之前先检查三件事。第一确认Ubuntu版本和系统架构。终端执行lsb_release -a uname -mlsb_release -a能看到系统版本信息常见的有20.04、22.04、24.04这些。uname -m查看CPU架构正常x86架构的电脑输出是x86_64ARM架构设备比如树莓派输出是aarch64。下载安装包时必须选对架构这个绝对不能弄错。第二检查磁盘空间。Anaconda3完整安装需要至少5GB空闲空间用df -h查看一下根目录和home目录的剩余空间。如果你是在虚拟机里装的Ubuntu并且之前分配磁盘空间比较抠门这一步尤其重要否则装到一半报磁盘满就尴尬了。第三确保系统里有wget或curl命令。Ubuntu默认一般自带如果没有用这个命令先装上sudo apt update sudo apt install -y wget curl这几项检查全程用不了一分钟却能把后面一多半问题消灭在萌芽期。2. 下载安装包官网不行就换国内镜像2.1 从官网拿.sh安装包的正确方式Anaconda3在Linux下是一个.sh格式的安装脚本获取方式有两种浏览器直接下载或者终端用wget拉取。官网地址是https://www.anaconda.com/download页面里选择Linux版本复制下载链接。需要注意的是官网这页经常默认展示Windows版安装包没看清就点下载很容易白等半天下载一个.exe文件回来。我建议直接在终端用wget下载复制到的链接通常长这样wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh版本号随时会更新不用死记。现在是2024年、2025年就可能变成别的版本号你只要把页面里最新的Linux x86_64版本链接复制过来即可。在这里顺便提醒一句安装包不要下载到一个带空格或者带中文的路径下否则后面执行安装脚本时经常报No such file or directory非常坑。我习惯在home目录下建一个downloads文件夹统一存放这类安装文件。2.2 国内镜像加速清华源下载Anaconda3官网源在国内网络条件下的下载速度经常会很慢几十KB每秒都见过一个700MB的包能下一小时。这种情况我的做法是直接换国内镜像源首推清华大学的TUNA镜像站。清华源的Anaconda3安装包目录是https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/。直接用wget下载命令长这样wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh如果你不知道目前最新版本号可以先不带文件名访问这个目录看看页面列出来的文件名再挑最新的那个下载。镜像文件一般能跑到几MB每秒甚至更快下载体验完全是两个世界。国内还有其他可用镜像比如中科大的源如果你在校园网内也可以先看看自己学校的开源镜像站很多高校都有自己的Anaconda镜像速度同样很快。选哪个都一样关键是别卡在官网慢慢磨。2.3 下载后先校验文件是否完整这一步很多人忽略但我觉得有必要说一下。.sh安装包如果下载不完整执行时会报tar: This does not look like a tar archive之类的错误或者直接在安装中途崩掉。最简单的检查方式是看文件大小是否和官网上标注的一致。用这个命令ls -lh Anaconda3-2024.10-1-Linux-x86_64.sh看输出的文件大小正常在600多MB如果只有几十MB或者几百MB基本可以断定下载有问题删掉重新下载。想更严谨的话可以比对官网提供的SHA256校验值但多数场景下检查文件大小已经足够用了。3. 命令行安装Anaconda3全流程3.1 执行安装脚本与交互选项下载完毕切换到安装包所在目录执行bash Anaconda3-2024.10-1-Linux-x86_64.sh这里用bash去执行而不是直接./Anaconda3-xxx.sh。两者区别是直接执行需要文件有可执行权限用bash执行则不需要少一步chmod操作更省事。安装脚本跑起来之后会有一系列交互问题我逐个说清楚怎么回答。首先是一大段许可协议License Agreement会连续滚动很多屏。一直按回车键读完然后输入yes接受协议。这里要注意如果一路回车按过头菜单会重新出现没关系再按回车就行。接着会问安装位置默认是/home/你的用户名/anaconda3。我的建议是直接用默认路径不要改。原因有两个一是默认路径就在你的home目录下完全不需要sudo权限后续创建环境、安装包都不会有权限问题二是很多教程、脚本默认conda就在这个位置将来排查问题方便。如果你确实想换位置也可以自己输入绝对路径但我很不建议放到/opt这类系统目录下否则每次安装包都要配权限纯给自己找麻烦。接下来是当前版本新增的问题Do you wish the installer to initialize Anaconda3 by running conda init?翻译过来就是“是否运行conda init来初始化Anaconda3”。这里必须输入yes。选no的话安装完终端里找不到conda命令还得自己手动改配置多一步操作。最后安装程序会开始往磁盘写入文件这一步需要几分钟等它跑完即可。看到Thank you for installing Anaconda3!输出安装就完成了。3.2 激活conda环境变量让conda命令立即生效安装完成后先别急着用。执行source ~/.bashrc这一步的作用是重新加载当前用户的环境变量配置文件。在前面安装时选择了conda init安装器已经在你的~/.bashrc文件末尾添加了一段conda初始化代码但这段代码在当前终端进程里还没生效source一下才能让conda命令立刻可用。注意别忽略这步。很多人安装完直接关掉终端再开一个也正常因为新终端会自动加载.bashrc但如果你在同一个终端里急着敲conda --version就会得到conda: command not found。source ~/.bashrc就是解决这个时差问题。加载完成后验证conda是否可用conda --version看到类似conda 24.9.2的输出说明conda已经正常工作。3.3 验证Anaconda3是否安装成功几分钟装完还是得做全面验证确认Python解释器、conda、环境都正常。依次执行下面几条命令which conda which python python --version conda info --envs我的预期结果是这样which conda输出/home/你的用户名/anaconda3/bin/condawhich python输出/home/你的用户名/anaconda3/bin/pythonpython --version显示Anaconda自带的Python版本比如Python 3.12.xconda info --envs显示至少有一个base环境路径指向anaconda3如果这几条全部正常Anaconda3就装好了后面可以直接创建自己的虚拟环境开干。4. 环境变量问题排查与修复4.1 找不到conda命令怎么办这是安装Anaconda3之后最常见的报错终端输入conda --version回一句conda: command not found。排查思路分两步走。第一步看~/.bashrc文件里有没有conda初始化段落。用编辑器打开vim ~/.bashrc正常情况文件末尾应该有一整段以# conda initialize 开头、# conda initialize 结尾的代码。如果有这段说明只是当前终端没加载执行source ~/.bashrc即可解决。如果没有这段说明安装时conda init没有执行或者执行失败了这时候手动把下面这段加到.bashrc末尾就行export PATH/home/你的用户名/anaconda3/bin:$PATH保存后执行source ~/.bashrcconda命令就会生效。第二步确认安装目录是否真的存在。有的用户安装时选择了自定义路径结果记错了半天都找不到。执行ls /home/你的用户名/看看anaconda3文件夹在不在如果不在用find / -name conda -type f 2/dev/null全局搜索一下conda可执行文件的位置再把上面的PATH路径改对。4.2 .bashrc写坏了怎么恢复这个坑我踩过一次把~/.bashrc里PATH变量写错结果所有终端一打开就报错连正常命令都用不了。原因很简单.bashrc对PATH的赋值如果漏掉了原本的$PATH就会把系统命令路径覆盖掉应用了配置之后ls、sudo这类命令全部找不到了。给个具体的错误例子export PATH/home/用户名/anaconda3/bin结尾少了:$PATH写完一保存当前终端执行任何系统命令都会失败。这属于环境变量配置错误里最常见的一种。恢复方法很简单而且不用慌。Ubuntu下bash的默认配置模板在/etc/skel/.bashrc可以拷贝一份覆盖cp /etc/skel/.bashrc ~/.bashrc然后重开一个终端系统的ls、pwd这些命令就全部回来了。注意这个操作会丢掉你原本在.bashrc里自定义的所有东西包括conda初始化那一段所以恢复之后需要重新执行一次source ~/.bashrc再手动把conda的PATH加回去。如果你记得自己写过什么别名和自定义配置最好写完就备份一份比如先cp ~/.bashrc ~/.bashrc.bak后面再改配置就踏实得多。4.3 conda会覆盖系统Python吗很多第一次用Anaconda3的人都会担心这个问题。答案是不会真正覆盖但会“接管”终端里的python命令。装完Anaconda3之后因为conda的bin目录被加到了PATH的最前面你在终端敲python系统会优先找到/home/你的用户名/anaconda3/bin/python所以显示的是conda的Python版本。但系统自带的Python活得好好的只是地址变成了/usr/bin/python3你需要的时候用完整路径去调用它就行。这种“接管”只影响当前用户终端环境不会动系统底层的东西也不用担心把系统搞坏。Ubuntu系统里很多系统工具依赖的是/usr/bin/python3它们不受影响。真要是哪天你想彻底不用Anaconda3了把.bashrc里那两段配置删掉、目录删除就能恢复原状具体步骤我在第6章会详细说。5. 装完马上要做的两件事配国内镜像源和建虚拟环境5.1 给conda配置国内镜像源装包不再卡死Anaconda3安装完成后conda默认用的是官方软件源在国内网络环境下下载Python包经常慢到怀疑人生甚至直接超时报错。我踩过这个坑之后每次装完Anaconda3第一件事就是换国内源。在终端依次执行这几条命令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会把配置写入~/.condarc文件。查看一下确认cat ~/.condarc正常能看到刚才添加的两个channel地址以及show_channel_urls: true的设置。这里解释一下show_channel_urls是干什么的它会让你在执行conda install时显示每个包来自哪个源方便日后排查问题。设置为yes后安装包时输出里会标明channel来源一眼就能看出来走的是哪个镜像。注意一个细节镜像源的channel配置不要加太多家清华源、中科大源混着加有时候会出现包版本不一致或者源地址失效的问题。认准一家主用就行。另外defaults这个channel建议保留有些包只在官方源里有万一镜像源暂时没有conda能自动回落去官方源找。如果你不想用清华大学源也可以把命令里的地址换成中科大镜像https://mirrors.ustc.edu.cn/anaconda/pkgs/main/效果是一样的。5.2 用conda创建和管理虚拟环境环境隔离是Anaconda3最核心的价值。我强烈建议任何项目都别直接往base环境里装包。base环境是Anaconda3的地基里面预装了很多库你在里面装新包很容易和已有包产生依赖冲突轻则警告重则把base环境搞得乱七八糟。正确的做法是为每个项目单独建一个环境。比如我要建一个Python 3.10的环境命名叫pytorchconda create -n pytorch python3.10这条命令会创建一个名为pytorch的新环境里面Python版本指定为3.10。创建过程中会把Python 3.10的运行时和基础依赖包一起装上期间会问是否继续输入y即可。激活这个环境conda activate pytorch注意终端提示符前面会出现(pytorch)字样这就是当前所在环境的标识。这时候你执行python --version看到的已经是3.10版本了。在这个环境里安装包比如装PyTorchconda install pytorch torchvision torchaudio -c pytorch所有操作都局限在这个环境里完全不影响其他环境。不想用了就退出conda deactivate查看当前机器上已创建的所有环境conda env list有个比较实际的经验环境命名建议用项目名或者用途名比如webapp、nlp-project不要用test123这种毫无信息量的名字。环境多了之后一眼看懂谁是谁能省很多事。5.3 终端每次出现(base)不想自动激活怎么办装完Anaconda3后你会发现每次打开新终端命令行前面都带着一个(base)这是conda默认每次都会自动激活base环境。对有些人来说这是便利对有些人来说就是干扰尤其是只在终端里跑一些轻量命令的时候看到(base)总觉得多余。关掉这个自动激活行为一行命令搞定conda config --set auto_activate_base false执行完重开终端(base)就消失了。之后需要进入base环境时手动执行conda activate base即可。如果你在哪一天想恢复这个自动激活把false改成true就行。我个人是习惯关掉自动激活的因为base环境本身很少直接用需要conda命令时它照样可用没必要每次开终端都默认进base。6. 常见问题速查与卸载重装实录6.1 常见问题速查表用表格把安装和使用Anaconda3时最高频的几个问题整理一下方便遇到了直接对照解决问题现象根本原因解决办法conda: command not foundconda init未执行或PATH未配置source ~/.bashrc检查.bashrc里是否有conda路径配置下载安装包速度极慢官方源网络延迟高改用清华镜像或中科大镜像下载conda install卡在Solving environment软件源网络不稳定或源地址失效换国内镜像源检查~/.condarc配置安装时报权限不足安装路径选在了系统目录直接删除已创建目录重新安装路径选用默认的home目录python指向了anaconda版本不想用conda的bin目录排在PATH前面不用管系统Python完整保留需要时用/usr/bin/python3调用终端每次打开都进入(base)conda默认自动激活base环境conda config --set auto_activate_base false安装包报No such file or directory安装包路径含空格或中文把安装包移到纯英文路径下再执行这里最想跟你说的是表格里的“安装时报权限不足”这条。不少人习惯用sudo bash Anaconda3-xxx.sh去装结果装出来的文件属于root普通用户往里写文件全是Permission denied后面建环境、装包各种别扭。Anaconda3装在自己的home目录下根本不需要sudo如果当前用户没有写权限那不是你的问题是路径选错了。6.2 从零干净卸载Anaconda3再重装热搜词里被问得很多的一个话题是“卸载Anaconda3再重装”。这种需求往往是因为环境被折腾坏了或者base环境装了一堆乱七八糟的包实在不想救了。卸载Anaconda3比安装更需要耐心因为残留配置不清理干净重装完还是会出各种奇怪问题。完整的卸载流程分四步。第一步删除Anaconda3安装目录。默认路径下执行rm -rf ~/anaconda3如果你安装时改了路径把~/anaconda3替换成实际路径。第二步清理.bashrc中的conda初始化配置。用编辑器打开~/.bashrc找到# conda initialize 到# conda initialize 之间的所有内容删除掉保存。第三步删除conda的配置目录和缓存。这一步非常关键很多人卸载后重装发现conda的源配置、旧环境信息还在就是这些残留文件在作怪。执行rm -rf ~/.conda rm -f ~/.condarc rm -rf ~/.config/conda第四步重开终端验证是否卸载干净which conda如果输出conda not found或者直接没有任何输出那就说明卸载干净了。然后再用第2章的方法重新下载安装包完全就是全新的Anaconda3环境。记得一个操作细节先删除目录再清理.bashrc或者先清理.bashrc再删除目录顺序其实都可以但source ~/.bashrc这一步不能省否则当前终端的PATH里还留着旧路径。6.3 我踩过的几个坑写在这里帮你避雷第一个坑是安装脚本放在带中文的路径下执行。我有一台测试机home目录下建了个“软件下载”文件夹安装包放在里面执行bash命令后直接报错找不到文件。原因是bash对非UTF-8字符路径的处理有时会出问题。后来我建了个~/downloads目录专门存放这类安装包再也没出过问题。第二个坑是sudo安装。早期折腾的时候我图省事直接sudo bash Anaconda3-xxx.sh装的时候一路顺风结果后续在Jupyter里写文件全部Permission denied耗时半天排查才发现是安装目录所有者和权限不对。从此我装Anaconda3一律不加sudo。第三个坑是conda更新到一半中断。执行conda update -n base -c defaults conda时如果网络不稳定中断了conda可能处于一个破碎状态后续执行任何命令都报ModuleNotFoundError。这时候最好的办法不是去修复而是直接按6.2的方法卸载重装比手动修复快得多。第四个坑是切换了shell。后来我有一台机器把默认shell从bash换成了zsh然后发现conda命令又找不到了。原因很简单之前conda init只初始化了~/.bashrc没有配置zsh的启动文件。解决办法是在zsh下执行一次conda init zsh它会自动把初始化代码写入~/.zshrc重新加载配置就好了。如果你用fish或者其他shell同样用conda init加shell名的方式处理。7. 最后一点个人建议Anaconda3的安装本质上不复杂大部分困扰其实来自没搞懂路径、权限和环境变量这些概念。我在实际使用中的体会是只要你坚持在home目录下安装、不加sudo、每次装完立刻配国内源再建独立环境这套流程基本可以无脑复用不管是自己的主力机还是虚拟机装一遍能稳定用很久。还有个建议是装完环境之后把常用的几组命令记在本地笔记里比如conda create -n、conda activate、conda env list哪天新换电脑或者帮同事排查问题打开笔记照着敲就行。今天就分享到这里希望这篇Ubuntu上安装Anaconda3的完整记录能帮你少折腾几个小时。