
在 Ubuntu 上装 Anaconda3这事我前前后后干过不下二十次。不是因为我爱折腾而是实验室新同学、项目组同事、甚至我自己换机器每次都绕不开这一步。网上教程虽然多但要么写得过于简略要么直接是老版本流程照着做很容易在某个环节卡死。今天我把这些年积累下来的完整安装流程、镜像加速方案、环境配置细节和踩坑记录整理成一篇从下载安装包到最后的 conda 源配置一条龙说清楚保证你照着做完不会在终端里对着报错发懵。这篇内容适合谁刚接触 Linux 的新手可以完全照着操作被安装过程折磨过的老手也能在常见问题里找到对应解法。核心覆盖官方安装包方式、国内镜像加速、安装后的环境变量与软件源配置以及在 Ubuntu 20.04 / 22.04 / 24.04 上都通用的实操细节。开始之前先说明一点Anaconda 官方版本号早就把 3 去掉了安装包叫 Anaconda3-2024.10-1-Linux-x86_64.sh 这种格式但大家叫习惯了统称 Anaconda3本质上就是指内置 Python 3 的发行版。1. 安装前先想清楚三件事1.1 为什么大家都在用 Anaconda3Anaconda3 的本质是一个 Python 发行版它把 Python 解释器、pip、conda 包管理器以及几百个常用的科学计算库打包在了一起。换成人话就是你不需要自己一个个去装 numpy、pandas、scipy 这些东西安装完就自带了一大堆。而 conda 这个包管理器更是核心亮点它能给你创建多个互相隔离的 Python 环境比如一个环境用 Python 3.9 跑旧项目另一个环境用 Python 3.11 搞新东西两个环境互不干扰这在多项目并行开发时简直救命。我见过太多人直接用系统自带的 Python 加 pip 硬扛最后把系统环境搞得一塌糊涂。举个例子Ubuntu 系统很多底层工具依赖 Python 2 或特定版本的 Python 3你一旦用 pip 把某个系统级库升级了轻则软件崩溃重则直接进不了桌面。Anaconda3 的思路聪明在哪儿它把所有东西都装在自己的目录里默认是 ~/anaconda3相当于一个独立的隔离区不会碰系统原有的 Python你的日常操作也完全不需要 sudo 权限。这也是我强烈推荐它在个人开发机上使用的原因。1.2 确认系统架构和版本很多新手栽在第一步下载错了安装包。Anaconda3 的安装包区分系统架构x86_64、aarch64 用的不是同一个文件。如果你的电脑是普通 Intel 或 AMD 的 CPU对应的是 x86_64如果是树莓派、飞腾等 ARM 架构需要下载 aarch64 版本。在终端里输入这一条命令就能看到uname -m输出 x86_64 就选 x86_64 安装包输出 aarch64 就选 aarch64 版本。千万别觉得都是 Linux 包应该通用我见过有人把 x86_64 的包硬怼到 ARM 机器上结果安装脚本直接报 Exec format error白白浪费半小时。接着看一下系统版本Ubuntu 20.04、22.04、24.04 这几代我都测过Anaconda3 安装流程基本一致。系统自带的 Python 版本有差异但这不影响我们的安装后面我会解释为什么。确认系统版本用lsb_release -a1.3 选哪种安装方式Anaconda3 在 Ubuntu 上的安装方式主要有三种官方安装包、国内镜像加速下载、包管理器安装。第三种不推荐因为 apt 仓库里的 Anaconda 版本往往非常老旧而且可能会被系统包管理器自动升级破坏你的 conda 环境。我自己长期用的是官方安装包 国内镜像下载这套组合。官方安装包的好处是版本官方、干净无污染安装过程是半个交互式的每一步都能看清楚在干什么国内镜像的作用只是把下载速度提上去安装包本身的内容和官方源完全一致。这篇博文的主线就是这套方案既能保证稳定又能照顾到国内网络环境下的下载速度。注意如果你的服务器在国内强烈建议直接走镜像下载流程原因很简单——Anaconda 官方服务器在国内的下载速度经常只有几十 KB/s一个 700MB 左右的安装包能传到地老天荒。2. 用官方安装包走一遍完整安装流程2.1 下载安装包官网与镜像二选一先讲官方渠道。Anaconda 官方下载页面在 repo.anaconda.com页面上能找到最新版的下载链接。在 Ubuntu 上我更推荐直接用 wget 在终端里下载因为图形界面浏览器下载大文件出问题的概率更高。最新的版本号建议去官网确认我这里用 2024.10-1 作为示例wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh如果下载速度实在感人立刻换到镜像方案。国内常用的镜像有清华 TUNA 镜像源、阿里云镜像源我实测下来速度都很稳。清华镜像的 Anaconda 安装包地址格式如下wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh注意这里我加了-c参数意思是断点续传。下载大文件时网络闪断是常有的事有这个参数可以接着上次的进度继续传不用从头再来一遍。镜像目录里能看到所有历史版本如果你对某个特定版本有需求比如为了兼容旧项目必须装 Anaconda3-2023.09-0也可以在 archive 目录里翻到。2.2 校验安装包完整性下载完成后我强烈建议做一次完整性校验。很多人跳过这一步真到安装时报错才开始怀疑是不是下载损坏了。在终端执行sha256sum Anaconda3-2024.10-1-Linux-x86_64.sh会得到一串 64 位的哈希值然后去官网或者镜像站的对应文件旁边找到官方提供的 SHA256 校验值。两者对比一致说明文件完整无损。如果不一致别犹豫重新下载。我遇到过镜像同步延迟导致校验不一致的情况所以这个步骤不是走过场它能直接帮你排除一类很闹心的问题。2.3 交互式安装详解一切就绪后执行安装bash Anaconda3-2024.10-1-Linux-x86_64.sh安装脚本会以交互式进行整个过程大概分四个关键步骤。第一步显示许可协议。这里会让你按回车键一页一页翻不想一页页看可以直接按 q 跳过协议文本然后输入 yes 表示接受许可协议。有人直接按回车想跳过去结果默认选项是 no安装流程直接终止。我提示一下这个地方必须明确输入 yes。第二步选择安装路径。默认是 $HOME/anaconda3也就是家目录下。我建议保持默认除非你有特殊需求。这里有几个值得注意的点如果安装时用了 sudo安装路径会变成 /root/anaconda3 之类的系统目录后续操作经常会出现权限问题所以再次强调——不要加 sudo。另外如果你的系统里已经有同名的 anaconda3 目录它会提示目录已存在让你选择覆盖或者更换路径用之前最好把旧版本备份或清理掉免得新旧版本混在一起出幺蛾子。第三步是否把 conda initialize 写入 shell 配置。在安装快要结束时脚本会问Do you wish the installer to initialize Anaconda3 by running conda init? 这里一定要输入 yes。它的作用是把 conda 的初始化代码写进你的 ~/.bashrc这样每次打开新的终端就能直接用 conda 命令。如果选 no装完之后你会很疑惑为什么 conda 提示找不到还得自己去手动配环境变量多走弯路。第四步等到进度条走完会看到类似 Thank you for installing Anaconda3! 的提示。到这里安装就算完成了但先别急着关终端。2.4 验证安装是否成功执行下面的命令让新配置立即生效source ~/.bashrc然后依次验证conda --version python --version which python正常情况下第一行会输出 conda 的版本号第二行输出的 Python 版本应该来自 Anaconda 自带的 Python 解释器比如 Python 3.12.x。第三行 which python 很关键如果输出路径是 /home/你的用户名/anaconda3/bin/python说明 conda 的 PATH 优先级已经生效——也就是说现在你在终端里敲 python调用的默认是 Anaconda 环境里的 Python而不是系统的 /usr/bin/python。我特别说一下为什么要重视which python这一步。Anaconda 安装完成后会把 ~/anaconda3/bin 目录插入到 PATH 的最前面所以终端里输入 python 时优先找到 Anaconda 的版本。有些人误以为 Anaconda 把自己的 Python 硬塞进了系统文件夹把系统 Python 覆盖了其实没有系统那份 /usr/bin/python 一直好好待在原地只是优先级变了而已。3. 给 Anaconda3 做一次本土化配置3.1 配置国内 conda 源安装完成只是第一步conda 默认使用官方源在国内环境下下载 Python 包经常会卡到怀疑人生。所以我的习惯是装完 Anaconda3 后立刻换源。这里我用清华 TUNA 的 conda 源作为示例执行以下四行命令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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/简单解释一下每行在做什么。前两行是添加核心软件包通道main 和 free 分别对应稳定主包和自由授权包第三行是让 conda 在下载时显示来源渠道方便你排查第四行加的是 conda-forge 社区的通道很多新库、第三方包主要托管在这个通道上实际使用频率极高。清华和阿里云的源镜像策略类似配置后 conda 会自动从这些源下载包。配置完之后可以执行conda info查看 channel 列表确认是否生效。我通常还会顺手更新一下 conda 本身conda update conda -y3.2 创建独立的 Python 环境conda 的核心能力在于环境隔离。我的建议是不要直接在 base 环境里装一大堆项目依赖而是给每个项目创建单独的环境。命令格式非常直接conda create -n myproject python3.10这条命令创建一个名为 myproject 的新环境指定 Python 版本为 3.10。创建过程中 conda 会去源里下载对应版本的 Python 和基础包安装完成后的日常操作就这三个conda activate myproject conda deactivate conda env listactivate 是进入指定环境deactivate 是退出当前环境回到 baseenv list 则是列出所有环境。进到环境之后你用 pip 或者 conda 安装任何包都只会装到这个环境里不会污染系统全局也不需要 sudo 权限。我自己的开发机上常年并存三四个环境有的跑机器学习框架有的跑数据分析脚本有的纯粹是给某个旧项目准备的 Python 2 兼容环境互不干扰非常清爽。3.3 管理默认环境的小技巧有几个小操作能让日常体验提升一大截。第一个是关闭 conda 自动激活 base 环境。默认情况下每次打开终端都会自动进入 base 环境终端提示符会被一大串 (base) 前缀占据有些人觉得烦可以用命令关掉conda config --set auto_activate_base false关闭之后每次打开终端回到系统默认 shell需要哪个环境就手动 activate自由度更高。我个人是保留自动激活的因为我的主要开发工作就是在 base 里做的自动激活反而省敲一行命令。这属于个人习惯差异没有绝对的对错。第二个小技巧是给终端提示符做减法。如果你开启了多个环境环境名会一直显示在提示符前面看起来虽然能提醒你当前状态但也会让命令行变得冗长。这不影响使用习惯就好。真正值得注意的反而是在写自动化脚本时不要把conda activate直接写进 bash 脚本的第一行因为 conda 的初始化代码只加载在交互式 shell 里非交互模式下脚本里直接调 activate 会报 CommandNotFoundError。正确做法是在脚本里调用 conda 可执行文件的完整路径或者先source /home/用户名/anaconda3/etc/profile.d/conda.sh再执行 activate。4. 安装后最容易踩的坑与排查实录4.1 conda 命令找不到这算是安装后最经典的问题。流程走完source 完 .bashrc输入 conda --version 却提示 command not found。大多数情况发生在安装时你选择了不运行 conda init或者 shell 环境不是 bash 而是 zsh。解决办法分两步。如果是 zsh执行conda init zsh然后source ~/.zshrc。Anaconda 安装包里自带 conda 完整路径直接用绝对路径调用即可/home/你的用户名/anaconda3/bin/conda init zsh如果是 bash 环境但 conda 命令依旧找不到先检查 ~/.bashrc 末尾是否有 conda initialize 相关的代码块。如果没有手动打开文件加上export PATH/home/你的用户名/anaconda3/bin:$PATH加完执行source ~/.bashrc再验证。需要提醒的是这一步切勿写错路径写错的话连 ls、vim 这些基础命令都会受影响因为 PATH 被污染了。4.2 系统 Python 被篡改的错觉安装完 Anaconda3 后有时候你会发现某些系统工具不再正常工作比如 apt 报 Python 相关错误、桌面插件异常。这时候第一反应不要是卸载 Anaconda而是先搞清楚这个工具是不是依赖了系统 Python 路径。前面说过Anaconda 只是提升了自己的 PATH 优先级系统 Python 的文件并没有被删除。问题往往出在有些工具在调用 python 时走的不是绝对路径 /usr/bin/python而是直接取 PATH 里的第一个 python结果找到了 Anaconda 的然后因为库环境不同崩溃了。解决思路有两个方向。一个是尽量不要用 sudo 去跑 conda 环境里装的东西另一个是在需要调用系统 Python 的场景下直接用/usr/bin/python3这种绝对路径或者在脚本内显式指定#!/usr/bin/python3。我在多台机器上实测过这个方案能覆盖绝大多数Anaconda 装完系统工具出问题的场景。4.3 下载包慢到怀疑人生换完源之后下载速度几乎立竿见影。我举个例子在官方源下安装 PyTorch 的 CPU 版本等了二十分钟还卡在 Solving environment切换到清华镜像之后同样的环境创建过程一两分钟搞定下载速度能跑满带宽。但有时候你换了源还是慢这里可能是 Python 包的 URL 地址没走到镜像。检查一下 conda 的配置文件 ~/.condarc看看 channels 里是否同时存在 defaults 和 mirror 地址。如果你用的是自定义源建议删掉 defaultschannels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - conda-forge show_channel_urls: true删掉 defaults 的原因是defaults 指向的是官方源conda在解析依赖时如果同时配置了官方源和镜像源有可能会从默认源拉取部分包速度还是会慢。删掉之后强制全部走镜像效果立竿见影。4.4 卸载重装流程有些朋友是装了老版本或者装坏了想重来一遍卸载 Anaconda3 其实特别简单粗暴但要注意顺序。第一步删除安装目录rm -rf ~/anaconda3第二步清理 PATH 和环境配置。编辑 ~/.bashrc把安装时自动添加的 conda initialize 代码块整个删掉。如果安装时没有生成这个代码块只添加过一行 PATH 导出那也是一样删掉那行就行。第三步删除用户目录下的隐藏配置文件夹rm -rf ~/.conda rm -rf ~/.condarc这三步做完Anaconda3 基本就干净卸载了。需要注意如果你在 conda 里建了环境环境文件也在 ~/anaconda3/envs 目录下所以第一步的 rm -rf 已经把环境一起删掉了。要保留环境文件的话先cp -r ~/anaconda3/envs备份到别处。重要提醒卸载前务必确认你当前没有正在使用 conda 环境否则某些 Python 进程会占用文件句柄导致删除不完整。5. 几点补充的实操心得5.1 服务器安装时用 tmux 跑在远程服务器上安装 Anaconda3 时我强烈建议先开一个 tmux 会话再执行安装。原因很实在如果你的网络连接不稳定SSH 一断开正在运行的安装脚本很可能被中止甚至造成安装包不完整或配置写到一半的状态。tmux 的会话是独立于 SSH 连接的断线了重新连上执行tmux attach就能回到安装界面大文件下载和长时间编译同理。这个习惯不仅适用于装 Anaconda也是所有远程操作的基础规范。5.2 关于版本选择的一个心得很多新人有版本越新越好的倾向其实在 Python 生态里未必如此。Anaconda 官方发布的版本默认带的 Python 版本逐步上升比如 2024.10 安装包自带 Python 3.12。如果你的日常开发用的是某些深度学习的旧版本框架它们对 Python 版本有严格限制Python 3.12 可能会直接装不上某些依赖。这种情况我建议你反而不必追求最新安装包去镜像站 archive 目录找一个顺应你需求的版本比如 Anaconda3-2023.09-0 自带 Python 3.11兼容性会好很多。或者干脆在装好的新版本里用conda create -n oldproject python3.8创建旧环境同样能解决问题而且更干净。5.3 安装时的最小化原则我最后想说的一点是Anaconda3 的安装包体积已经动辄七八百 MB装完之后 base 环境里预置的包多达两百多个实际上很多你用不上。如果你对磁盘空间敏感或者只想要一个轻量的 Python 环境和 conda 能力可以优先考虑 Miniconda——它只有 Anaconda 安装包体积的十分之一安装后不带那堆预置包需要什么自己通过 conda 或 pip 装。Anaconda3 和 Miniconda 的本质差别其实只在预装包工具链完全一致。个人观点如果工作环境是教学、数据分析、机器学习这类依赖开箱即用的场景Anaconda3 省心如果是服务器部署、嵌入式开发、在受限存储环境下工作Miniconda 更合适。根据我反复试错的经验Ubuntu 上装 Anaconda3 本身不难难的是装完之后遇到问题知道去哪查。这篇流程已经覆盖了我这些年遇到的大部分坑照着走一遍正常情况下二十分钟内就能搞定。哪怕中间真的翻车回头对照第 4 节的问题排查表基本都能定位到原因。最后再分享一个小技巧安装完成第一次做conda create时加上-y参数自动确认可以省掉一次手动输入 y 的过程尤其是写自动化脚本时这个参数能避免脚本卡在交互提示上。