尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Ubuntu 下 Anaconda 安装避坑指南:从环境配置到虚拟环境实战

发布时间:2026/9/19 21:01:22

资讯中心
01
ARTICLE

Ubuntu 下 Anaconda 安装避坑指南:从环境配置到虚拟环境实战

Ubuntu 下 Anaconda 安装避坑指南:从环境配置到虚拟环境实战
1. 为什么 Ubuntu 下的 Anaconda 安装值得单独写一篇避坑指南在 Ubuntu 上装 Anaconda表面上看就是下载一个.sh文件、一路回车的事但真正动手做过的人都知道这里面的坑远比想象中多。我自己前前后后在 Ubuntu 20.04、22.04、24.04 三个 LTS 版本上装过不下二十次 Anaconda帮同事远程处理过各种“conda 命令找不到”“base 环境把系统 Python 覆盖了”“conda activate 报错让先 conda init”之类的问题踩过的坑足够写一篇完整的复盘。这篇内容面向的是刚接触 Ubuntu 或者刚接触 Python 数据科学的同学也适合那些装过一次但总觉得环境“不太干净”、想重新梳理一遍的老手。核心要解决的问题有三个第一怎么在 Ubuntu 上干净、可控地把 Anaconda 装好第二装完之后怎么配置 conda 让它真正好用包括换源、虚拟环境、目录迁移第三遇到常见报错怎么快速定位和修复。关键词 Ubuntu、Anaconda、conda、Python 会贯穿全文但我不打算写成一份冷冰冰的官方文档翻译而是按照一个真实从业者的操作顺序把每一步背后的“为什么”讲清楚。需要提前说明的是Anaconda 的安装方式有很多种有人喜欢 Miniconda有人喜欢直接用系统包管理器还有人干脆用 pyenv 加 venv。这些方案各有适用场景本文聚焦在 Anaconda 官方安装脚本这条路径上因为它是数据科学场景下最省心、生态最完整的选择。至于 Miniconda 和 venv 的对比我会在方案选型那一节展开讲。另外提醒一句Ubuntu 版本差异会直接影响安装细节。比如 22.04 之后默认的 shell 是 bash但如果你手动装了 zshconda init的行为就不一样再比如 24.04 对某些旧版安装脚本的兼容性有变化。所以下面的步骤我会标注适用版本你对照自己的系统来操作。2. 安装前的方案选型与系统准备2.1 Anaconda、Miniconda、venv 到底选哪个很多人一上来就问“我该装 Anaconda 还是 Miniconda”其实这个问题的答案取决于你的使用场景。我把三者的核心差异整理成一张表你对着自己的需求看就行。方案体积预装包适用场景环境隔离能力Anaconda约 5GB数百个科学计算包数据科学、机器学习入门强conda 管理Miniconda约 400MB仅 conda 和 Python需要精简环境、自己控制依赖强conda 管理venv pip几乎为零无Web 开发、轻量脚本中仅 Python 包隔离Anaconda 的优势在于开箱即用numpy、pandas、scikit-learn、jupyter 这些常用工具全都预装好了省去了一个个 pip install 的麻烦。代价是体积大、启动慢而且 base 环境里包太多有时候反而容易产生依赖冲突。Miniconda 则是给你一个干净的 conda需要什么自己装适合对磁盘空间敏感或者喜欢自己掌控依赖的人。我的建议是如果你是刚入门数据科学直接上 Anaconda省心如果你已经有明确的项目依赖清单或者磁盘空间紧张Miniconda 更合适。venv 适合纯 Python 开发不涉及 CUDA、MKL 这类非 Python 依赖的场景。2.2 系统环境检查与依赖补齐在下载安装脚本之前先花两分钟确认系统状态。打开终端依次执行下面几条命令。# 查看系统版本 lsb_release -a # 查看系统架构确认是 x86_64 还是 aarch64 uname -m # 查看磁盘剩余空间Anaconda 至少需要 5GB df -h / # 查看当前 shell echo $SHELL这四条命令分别告诉你系统是不是 LTS 版本、CPU 架构是什么、磁盘够不够、用的是 bash 还是 zsh。架构这一项特别重要因为 Anaconda 官方安装脚本分 x86_64 和 aarch64 两个版本下错了直接报“cannot execute binary file”。接下来补齐基础依赖。Ubuntu 最小化安装的镜像里可能缺少bzip2、curl、wget这些工具而 Anaconda 安装脚本内部会用到它们。sudo apt update sudo apt install -y bzip2 curl wget ca-certificates这几条命令里ca-certificates容易被忽略但它决定了你能不能正常通过 HTTPS 下载文件。我遇到过好几次因为证书过期导致下载中断的情况补上这个包就解决了。注意如果你是在公司内网或者有代理的环境下操作apt update可能会失败。这种情况下先确认网络配置不要跳过依赖安装直接装 Anaconda否则安装到一半报错会更麻烦。2.3 下载源的选择与校验Anaconda 官方下载地址在国内访问速度不稳定很多人会卡在下载这一步。我的做法是优先用国内镜像站比如清华 TUNA 或者中科大 USTC 的镜像。以清华源为例下载命令是这样的# 下载最新版 Anaconda以 2024.10 版本为例实际请替换为最新版本号 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh下载完成后强烈建议做一次完整性校验。官方会提供每个安装包的 SHA256 值你可以用sha256sum对比。sha256sum Anaconda3-2024.10-1-Linux-x86_64.sh把输出结果和官网公布的值比对一致才继续。这一步看起来多余但我确实遇到过下载文件损坏导致安装脚本执行到一半报错的情况重新下载就好了。校验能帮你省下排查的时间。提示如果你不确定当前最新版本号可以去镜像站的 archive 目录下看文件名按时间排序取最新的即可。不要盲目复制网上教程里的旧版本号旧版本可能不兼容新的 Ubuntu 系统库。3. 安装过程详解与关键参数解读3.1 执行安装脚本的正确姿势下载好脚本之后很多人直接bash Anaconda3-xxx.sh就开始装了这样也能装上但会错过几个关键选项。我推荐用下面的方式执行bash Anaconda3-2024.10-1-Linux-x86_64.sh执行后会进入交互式安装流程几个关键节点需要你做出选择。第一个节点是阅读许可协议按回车翻页最后输入yes同意。这一步没什么好说的不同意就装不了。第二个节点是选择安装路径。默认是~/anaconda3也就是你的用户主目录下。这里我建议保持默认原因有三第一用户目录下不需要 sudo 权限后续 conda 安装包不会遇到权限问题第二路径短命令行操作方便第三卸载的时候直接删目录就行不会污染系统。如果你非要装到/opt/anaconda3这类系统目录那后续所有 conda 操作都可能需要 sudo非常别扭。我试过一次装到/opt结果 conda 装包时各种权限报错最后还是重装回用户目录。第三个节点是是否运行conda init。安装脚本会问你“Do you wish the installer to initialize Anaconda3 by running conda init?”这里选yes。这个选项的作用是自动修改你的 shell 配置文件比如~/.bashrc把 conda 的初始化脚本加进去。选了 yes新开的终端就能直接用conda命令选 no 的话你得手动配置后面我会讲怎么补。3.2 安装完成后的验证步骤安装脚本跑完之后先别急着关终端。当前终端的环境变量还没刷新直接敲conda可能提示找不到命令。执行下面这条命令让配置生效source ~/.bashrc然后验证安装是否成功conda --version python --version which python正常情况下conda --version会输出类似conda 24.9.2的版本号which python会指向~/anaconda3/bin/python。如果which python指向的是/usr/bin/python说明 conda 的环境变量没有正确加载需要检查~/.bashrc里有没有 conda 的初始化块。一个健康的~/.bashrc末尾应该能看到类似这样的内容# conda initialize # !! Contents within this block are managed by conda init !! __conda_setup$(/home/你的用户名/anaconda3/bin/conda shell.bash hook 2 /dev/null) if [ $? -eq 0 ]; then eval $__conda_setup else if [ -f /home/你的用户名/anaconda3/etc/profile.d/conda.sh ]; then . /home/你的用户名/anaconda3/etc/profile.d/conda.sh else export PATH/home/你的用户名/anaconda3/bin:$PATH fi fi unset __conda_setup # conda initialize 这段代码是conda init自动生成的不要手动去改它。如果你用的是 zsh对应的文件是~/.zshrc逻辑一样。3.3 base 环境自动激活的取舍装完 Anaconda 后每次打开终端都会自动激活 base 环境命令行提示符前面会多一个(base)。这个行为有人喜欢有人烦。喜欢的人觉得方便随时能用 conda烦的人觉得每次都要手动conda deactivate很啰嗦而且 base 环境里的 Python 会覆盖系统 Python导致一些系统工具出问题。我个人的习惯是关闭 base 自动激活。原因很简单我大部分时间在虚拟环境里工作base 环境只用来管理 conda 本身不需要它自动激活。关闭方法如下conda config --set auto_activate_base false执行后重新打开终端(base)就不会自动出现了。需要的时候手动conda activate base即可。注意关闭自动激活后conda命令本身仍然可用因为conda init已经把 conda 的 shell 函数加载进来了。这一点很多人搞混以为关了自动激活 conda 就不能用了其实不是。如果你后续遇到conda: command not found那说明conda init那一步没做或者没生效跟自动激活是两码事。4. conda 核心配置与虚拟环境实战4.1 换源让 conda 装包速度起飞Anaconda 默认的包源在国外国内下载速度经常只有几十 KB/s装一个 pytorch 能等到天荒地老。换源是装完 Anaconda 后第一件要做的事。我推荐用清华源配置命令如下# 配置 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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 显示频道 URL方便确认包是从哪个源下载的 conda config --set show_channel_urls yes配置完成后可以查看~/.condarc文件确认cat ~/.condarc正常输出应该包含你刚添加的几个 channels。这里有个细节conda config --add channels是往列表头部插入所以最后添加的频道优先级最高。如果你需要某个特定频道优先注意添加顺序。提示换源之后如果遇到 SSL 证书错误先检查系统时间是否正确。系统时间偏差过大会导致 HTTPS 握手失败这个坑我踩过排查了半天才发现是虚拟机休眠后时间没同步。4.2 创建和管理虚拟环境的标准流程conda 最核心的价值就是虚拟环境管理。不同项目依赖不同版本的 Python 和库用虚拟环境隔离是最佳实践。创建环境的标准命令# 创建一个名为 labels 的环境指定 Python 3.9 conda create -n labels python3.9 # 创建时同时安装常用包 conda create -n myproject python3.10 numpy pandas matplotlib创建完成后激活环境conda activate labels激活后命令行提示符会变成(labels)此时which python指向的是~/anaconda3/envs/labels/bin/python跟 base 环境完全隔离。退出环境用conda deactivate查看所有环境conda env list删除环境conda env remove -n labels这几条命令覆盖了日常 90% 的环境管理需求。我建议每个项目单独建一个环境环境名用项目名Python 版本按项目要求指定。不要图省事所有项目共用一个环境依赖冲突迟早会找上门。4.3 conda 目录迁移C 盘/根分区不够用的救星Ubuntu 用户遇到 conda 目录迁移通常是因为根分区空间不够想把 Anaconda 挪到更大的数据盘。这个操作有风险做之前一定要备份。核心思路是先复制目录再修改环境变量和 conda 配置最后验证。假设要把~/anaconda3迁移到/data/anaconda3步骤如下# 1. 复制整个目录保留权限和软链接 cp -a ~/anaconda3 /data/anaconda3 # 2. 修改 ~/.bashrc 中的 conda 初始化路径 # 把原来的 /home/用户名/anaconda3 全部替换为 /data/anaconda3 sed -i s|/home/用户名/anaconda3|/data/anaconda3|g ~/.bashrc # 3. 重新加载配置 source ~/.bashrc # 4. 验证 which conda conda --version迁移后还需要检查~/.condarc里有没有硬编码的路径以及各个虚拟环境里的conda-meta目录是否正常。如果迁移后conda activate报错大概率是环境里的路径没更新可以用conda env update -n 环境名 --prune来修复。注意迁移过程中不要删除原目录等新位置验证无误后再删。我见过有人直接mv然后配置没改对结果 conda 和原环境都用不了只能重装。4.4 conda init 报错的完整排查路径conda activate报错CommandNotFoundError: Your shell has not been properly configured to use conda activate或者提示run conda init before conda activate这是最高频的问题之一。根本原因是 shell 没有加载 conda 的初始化脚本。排查步骤按顺序来第一步确认~/.bashrc里有没有 conda initialize 块。没有的话手动执行~/anaconda3/bin/conda init bash source ~/.bashrc第二步如果用的是 zsh把上面的bash换成zsh然后source ~/.zshrc。第三步如果执行conda init时报权限错误检查 anaconda3 目录的属主是不是当前用户ls -ld ~/anaconda3如果属主是 root说明之前用 sudo 装过需要改回来sudo chown -R $USER:$USER ~/anaconda3第四步如果以上都正常但依然报错检查是不是在脚本里执行conda activate。非交互式 shell 默认不加载~/.bashrc需要在脚本开头加source ~/anaconda3/etc/profile.d/conda.sh。这个问题的本质是 shell 初始化机制理解了就不难排查。我处理过的案例里八成是conda init没做剩下两成是权限或 shell 类型不对。5. 常见问题速查与避坑经验实录5.1 安装与配置阶段的高频问题我把这些年遇到的高频问题整理成一张速查表方便你对照排查。问题现象根本原因解决方法conda: command not foundshell 未加载 conda 初始化执行conda init bash后source ~/.bashrcconda activate报错要求先 init同上或脚本中未 source脚本开头加source ~/anaconda3/etc/profile.d/conda.sh安装脚本报cannot execute binary file下载了错误架构的安装包用uname -m确认架构重新下载对应版本下载速度极慢或中断官方源国内访问不稳定改用清华或中科大镜像源下载sha256sum校验不通过下载文件损坏删除重新下载不要跳过校验base 环境覆盖系统 Python自动激活 base 导致 PATH 优先级变化conda config --set auto_activate_base false装包时 SSL 证书错误系统时间偏差或证书缺失校准时间安装ca-certificates虚拟环境激活后 pip 装包报权限错环境目录属主异常sudo chown -R $USER:$USER ~/anaconda3这张表里的每一条都是我或身边同事真实遇到过的。特别是最后一条权限问题很多人用 sudo 装过一次 Anaconda 之后后续所有操作都带着权限隐患早点改属主能省很多事。5.2 虚拟环境与包管理的踩坑记录虚拟环境用久了总会遇到一些奇怪的问题。我挑几个典型的说说。第一个是环境“膨胀”。conda 装包时会保留很多缓存和旧版本时间长了~/anaconda3/pkgs目录能占好几个 GB。定期清理conda clean --all这条命令会清理未使用的包缓存、索引缓存和 tarball我一般每个月跑一次能释放不少空间。第二个是环境复制。有时候想把一个配好的环境复制到另一台机器用conda env export导出conda env export -n labels labels.yml然后在目标机器上conda env create -f labels.yml但要注意导出的 yml 里包含prefix字段记录了原环境的绝对路径跨机器恢复时可能出问题。建议导出时加--no-builds参数去掉具体的构建号兼容性更好。第三个是 pip 和 conda 混用。在 conda 环境里用 pip 装包是可以的但顺序有讲究先用 conda 装conda 找不到的再用 pip。反过来先 pip 后 condaconda 可能会覆盖 pip 装的版本导致依赖混乱。我一般会在环境里先conda install主要框架再用pip install补充小众库。5.3 与 IDE 配合时的环境配置要点装好 Anaconda 和虚拟环境后下一步通常是配置 IDE。以 VS Code 和 PyCharm 为例说几个关键点。VS Code 里按CtrlShiftP打开命令面板输入Python: Select Interpreter然后选择对应虚拟环境的 Python 路径通常是~/anaconda3/envs/环境名/bin/python。选好后VS Code 的终端会自动激活该环境。如果终端没有自动激活检查 VS Code 设置里的python.terminal.activateEnvironment是否为 true。PyCharm 里进入File - Settings - Project - Python Interpreter点齿轮图标选Add然后选Conda Environment指定 conda 可执行文件路径和已有环境。PyCharm 对 conda 的支持比较完善能直接识别conda env list里的所有环境。提示如果你在 WSL 里用 VS Code记得装 Remote - WSL 扩展然后在 WSL 环境里选解释器。直接在 Windows 侧选 WSL 的 Python 路径是不行的路径格式不一样。5.4 卸载与重装的干净做法有时候环境被折腾坏了重装比修复更快。Anaconda 的卸载其实很简单但要做干净。# 1. 删除 anaconda3 目录 rm -rf ~/anaconda3 # 2. 清理 ~/.bashrc 中的 conda initialize 块 # 手动编辑 ~/.bashrc删掉 # conda initialize 到 # conda initialize 之间的内容 # 3. 删除配置文件和缓存 rm -rf ~/.condarc ~/.conda ~/.continuum # 4. 重新加载 shell source ~/.bashrc做完这四步系统就回到没装 Anaconda 的状态了。重装的时候按前面的流程走一遍即可。我个人的经验是如果只是某个虚拟环境坏了删掉那个环境重建就行没必要整个重装。只有 base 环境被污染或者 conda 本身出问题时才需要走完整卸载流程。5.5 几个容易被忽略的细节最后分享几个小细节都是实际用下来觉得有用的。第一conda create时指定 Python 版本尽量精确到小版本比如python3.9.18而不是python3.9。后者会装 3.9 系列的最新版不同时间创建的环境可能版本不一致影响复现性。第二conda install和pip install装同一个包时版本可能不同。排查依赖冲突时用conda list和pip list分别看对比差异。第三如果要用 GPU 跑深度学习conda 装 pytorch 时可以指定 CUDA 版本比如conda install pytorch torchvision cudatoolkit11.7 -c pytorch。但要注意 conda 的 cudatoolkit 和系统驱动版本要匹配装之前先用nvidia-smi看驱动支持的 CUDA 版本。第四Ubuntu 上如果同时装了系统 Python 和 Anaconda注意python3和python的区别。系统工具依赖python3conda 环境里python和python3通常都指向 conda 的 Python。写脚本时用#!/usr/bin/env python3比硬编码路径更稳妥。这些细节看起来琐碎但真正遇到问题时往往就是这些地方卡住你。我自己的习惯是每装完一个新环境先跑一遍conda list和python -c import sys; print(sys.executable)确认环境路径正确再开始装项目依赖。这个习惯帮我避免了很多“装了半天发现装错环境”的尴尬。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。