ARTICLE DETAIL

资讯详情

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

Ubuntu安装Anaconda完全指南:从下载到环境配置与排错

Ubuntu安装Anaconda完全指南:从下载到环境配置与排错 1. 安装前需要想清楚的几件事在 Ubuntu 上装 Anaconda表面上看就是下载一个脚本、跑一下、完事。但实际动手的人都知道这里面藏着不少坑装完敲conda提示找不到命令、装到一半权限报错、装好了 pip 还是指向系统自带的 Python……这些我在帮同事排查时见得太多了。所以先从准备工作说起把思路捋顺后面才不会反复折腾。先说适用范围。这篇内容覆盖 Ubuntu 20.04、22.04、24.04 这几个主流版本同时适用于桌面版和服务器版。不管你是刚把 Ubuntu 装进虚拟机的学生还是要在服务器上部署 Python 环境的运维流程都差不多。区别只在于下载安装包的方式和 shell 类型后面我会分别提到。1.1 搞清楚你的系统架构别再下错安装包很多人上来就直接打开 Anaconda 官网点下载结果装完跑起来各种诡异报错。其实第一步应该是先确认系统架构。在终端执行uname -m如果输出x86_64说明是 64 位 x86 架构对应官网的 x86_64 安装包这也是绝大多数 PC 和主流服务器的情况。如果输出aarch64说明是 ARM 架构常见于树莓派、部分国产芯片服务器或者 Apple Silicon 虚拟机里的 Ubuntu那就必须下载 aarch64 版本的安装包。另外看看自己系统是哪个版本执行lsb_release -a或者看桌面右上角的“设置 - 关于”。版本信息虽然不影响安装包选择但影响后面排查问题比如有些依赖库在不同 Ubuntu 版本下行为不一样知道版本号能少走弯路。还有一个细节搞清楚你的默认 shell 是 bash 还是 zsh。echo $SHELLAnaconda 安装脚本默认会往 bash 的配置里写初始化代码如果你用的是 zsh装完后可能还要手动处理一下。Ubuntu 默认是 bash但不少折腾过的人会换成 zsh后面会专门讲这个情况。1.2 选择官方源还是国内镜像源这一步直接决定你的下载速度Anaconda 官方安装包放在 repo.anaconda.com文件大概 600MB 到 1GB 不等。国内直连速度很不稳定我有一次在公司网络下下载速度只有几十 KB/s等到怀疑人生。所以建议直接用清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/清华镜像站会把历史版本按日期排列文件名形如Anaconda3-2024.10-1-Linux-x86_64.sh。建议选最新的稳定版本但要避开刚发布一两周的版本因为社区反馈还不够充分可能有兼容性问题。我在生产环境一般会等新版本发布一个月后再升级。下载方式推荐用wget直接复制镜像站上的链接在终端执行wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh如果系统提示没有 wget先装一下sudo apt update sudo apt install -y wget下载完成后下一步就是核对文件。Anaconda 官方会对安装包做 SHA256 校验镜像站对应的目录里一般也有.sha256文件。执行sha256sum Anaconda3-2024.10-1-Linux-x86_64.sh把输出的哈希值和官网公告或镜像站记录比对。这一步很多人跳过但我始终建议做一下尤其你是从镜像站下载的确保文件完整没被截断能避免安装到一半突然报“tar 解压失败”这种尴尬问题。2. 开始安装完整跑通 Anaconda 安装脚本安装包拿到手之后直接开始装。这里要注意一个常见误区不要用 sudo 安装 Anaconda。Anaconda 官方建议安装到当前用户的主目录下比如/home/你的用户名/anaconda3。用 sudo 装到/root或者/usr/local会带来一系列权限问题普通用户找不到 conda 命令、无法创建虚拟环境、无法写入包文件等。我见过不少服务器上 root 装了 Anaconda结果其他开发人员根本没法用。2.1 执行安装脚本注意交互式回答的每个选项执行安装bash Anaconda3-2024.10-1-Linux-x86_64.sh脚本跑起来后会出现一段许可协议说明一直按回车读完然后输入yes表示接受。接着脚本会询问安装位置默认是/home/你的用户名/anaconda3直接回车即可。接下来脚本会问Do you wish the installer to initialize Anaconda3 by running conda init?这里一定要选yes。选 no 的话装完手动配置环境变量也能用但多一事不如少一事直接让脚本帮你配置好。选了 yes 之后脚本会自动向~/.bashrc末尾追加一段 conda 初始化代码。安装完成后脚本会提示你重新打开终端或者执行source ~/.bashrc我个人推荐重新打开一个终端窗口这样环境加载最干净。2.2 验证安装并理解终端里出现的 (base)新开终端后正常情况下命令行提示符前面会出现(base)这表示当前正处在 conda 的默认 base 环境中。执行conda --version python --version which pythonconda --version会输出 conda 的版本号which python应该指向/home/你的用户名/anaconda3/bin/python而不是/usr/bin/python3。这一步很关键如果which python还指向系统自带 Python说明 PATH 环境变量没有生效需要排查。很多人对(base)环境不理解我打个比方conda 是一个“房间管理员”base 是它默认打开的第一个房间。你可以在这个房间里干活但更推荐另外开一间“新房间”虚拟环境来隔离不同项目的依赖。这样项目 A 用 Python 3.9项目 B 用 Python 3.12互不干扰。2.3 如果终端没出现 (base)手动配置环境变量有时候安装时选了 yes终端里还是看不到(base)常见原因有两个一个是当前用户用的不是 bash另一个是.bashrc没有被正确加载。先检查默认 shellecho $SHELL如果是/usr/bin/zsh那需要执行conda init zsh source ~/.zshrc如果是 bash 但(base)没出现手动编辑配置文件nano ~/.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 保存后执行source ~/.bashrc。这一步基本上能解决 99% 的“conda 命令找不到”问题。3. conda 基础操作与虚拟环境配置Anaconda 装好后下一步不是急着装包而是先理解 conda 的基本操作。很多人用过一段时间 conda 后还是迷迷糊糊最常见的问题就是所有包都装在 base 环境里时间长了环境乱成一锅粥项目之间互相冲突最后只能重装系统。这个坑完全可以避免。3.1 创建独立的虚拟环境这是 conda 最核心的功能虚拟环境相当于给每个项目开一个独立的“操作间”各操作间之间不共享 Python 版本和第三方包。创建环境的基本命令conda create -n py39 python3.9-n后面是环境名python3.9是指定 Python 版本。Anaconda 自带的 base 环境 Python 版本是固定的比如 2024.10 版本对应 Python 3.12如果你需要跑老旧项目就得靠新建环境装指定版本。创建一个环境后激活它conda activate py39这时终端提示符前面的(base)会变成(py39)。在这个环境里安装任何包都不会影响其他环境。要退出当前环境conda deactivate查看当前有哪些环境conda env list星号*标注的是当前所在环境。这里有个小建议环境名不要随便起我习惯用项目名加 Python 版本号比如recommend-py310、webapi-py311一眼就能看出来是干什么的。3.2 配置国内镜像源解决 conda 下载慢和超时问题装 Anaconda 只是第一步真正用起来才发现麻烦在后头。默认的 conda 软件源在国外安装 numpy、pandas、pytorch 这种大型包时下载速度慢得离谱还会频繁中断。解决办法是配置国内镜像源。在终端执行以下命令写入清华源配置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 --set show_channel_urls yes配置完成后可以查看配置文件确认cat ~/.condarc除了 conda 源pip 源也应该换掉。我一般会同时配置 pip 的清华源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple配置好了之后实测安装一个比较大的包试试conda install numpy正常情况下速度会有质的提升。如果安装过程中提示CondaHTTPError或者ProxyError多半是网络问题可以检查一下是不是公司内网需要代理或者稍后再试。还有一种可能是你加的自定义 channel 不稳定可以先把~/.condarc里的配置注释掉逐个排查。3.3 Pytorch 环境配置建议GPU 版和 CPU 版的区分从热搜词里能看到很多人装 Anaconda 是为了配 Pytorch 深度学习环境。这块有一个最容易踩的坑直接用conda install pytorch装出来的可能是 CPU 版本训练模型慢得让你怀疑人生。正确做法是先去 Pytorch 官网pytorch.org找到对应的安装命令。它会根据你的操作系统、包管理器、CUDA 版本自动生成一条 conda 命令。比如 CUDA 12.1 版本的命令长这样conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia这里关键参数是pytorch-cuda12.1它决定了你装的是 GPU 版本。装之前先在终端确认显卡驱动和 CUDA 是否可用nvidia-smi如果这个命令输出的第一行显示 CUDA 版本比如CUDA Version: 12.1说明驱动正常可以选择对应版本的 Pytorch。如果提示command not found说明 NVIDIA 驱动没装或者没加进 PATH需要先把驱动问题解决掉。装完后验证一下 Pytorch 是否真的用上了 GPUpython -c import torch; print(torch.__version__); print(torch.cuda.is_available())输出True说明 GPU 可用输出False说明装的是 CPU 版本或者 CUDA 配置不对。这一步验证很多人会漏掉结果训了半天模型才发现用的是 CPU。4. 与 PyCharm、Jupyter 等工具链的集成Anaconda 装好、环境也建好之后下一步就是把它用起来。很多人习惯在 PyCharm 里写代码或者在 Jupyter Notebook 里跑实验这里我把集成方法讲清楚。标题的热搜词里有“pycharm配置anaconda”和“anaconda配置pycharm环境”说明需求非常集中。4.1 PyCharm 选择 conda 解释器一步到位PyCharm 里配置 Anaconda 环境的本质就是告诉 IDE我这段代码用哪个 Python 解释器来跑。如果你已经在终端创建了名为py39的虚拟环境那么在 PyCharm 里打开项目后点击右下角的解释器信息或者进入File - Settings - Project - Python Interpreter。点击齿轮图标选择Add Interpreter - Conda Environment。选择Existing environment然后在 Interpreter 路径里点浏览找到/home/你的用户名/anaconda3/envs/py39/bin/python。这里要特别注意一定要选envs/py39/bin/python而不是/home/你的用户名/anaconda3/bin/python。后者是 base 环境的解释器选错了等于所有项目都跑在同一个环境里那创建虚拟环境就失去意义了。选好之后PyCharm 的终端如果配置合理也会自动激活对应环境。如果 PyCharm 的终端里没有自动进入 conda 环境可以在Settings - Tools - Terminal里检查Shell path是否设置正确。Ubuntu 下默认是/bin/bash如果这里被改成其他 shell可能导致 conda 初始化没有执行。4.2 Jupyter Notebook 注册自定义内核Jupyter Notebook 默认只显示 base 环境的 Python 内核。如果你在py39环境里装了一堆包打开 Jupyter 却发现内核列表里没有py39会觉得很困惑。解决办法是在py39环境中安装并注册内核conda activate py39 conda install ipykernel python -m ipykernel install --user --name py39 --display-name Python (py39)执行完刷新 Jupyter 页面内核列表里就会出现Python (py39)。--display-name参数是可选的但建议加上这样显示的名字更友好不然默认显示环境名时间久了你自己都记不清哪个是哪个。这里稍微解释一下原理Jupyter 是一个前端界面真正的代码在 Python 内核里执行。ipykernel 就是连接前端和后端执行器的“桥梁”。注册内核的本质是把当前解释器的路径写到了~/.local/share/jupyter/kernels/目录下Jupyter 启动时读取这个目录自然就能发现新的环境。4.3 写 Jupyter 和终端联动使用技巧在终端里激活了py39环境后直接在终端敲jupyter notebook就会用 py39 环境里的 Jupyter 启动。但如果你是从桌面图标启动的 Jupyter它就只认 base 环境。这个小差异很让人困惑但实际上弄清楚原理就明白了桌面图标启动的 Jupyter 对应的是 base 环境下的jupyter可执行文件而你在终端激活环境后敲的jupyter是当前环境下的。这两个可能装的是不同版本包列表也完全不同。所以我个人建议做项目时养成一个习惯项目环境绑定启动命令。在终端里执行conda activate 项目环境名 jupyter notebook启动后Jupyter 右上角的 Python 版本信息会显示当前环境对应的版本。如果发现显示的还是 base就用python -m ipykernel install手动注册一下前面已经教过了。5. 常见问题与排查技巧实录这部分是干货中的干货。我把自己和周围人踩过的坑整理成了一份速查表基本覆盖了 Ubuntu 安装 Anaconda 后最常见的故障场景。每个问题都给出定位思路和解决手段建议收藏备用。5.1 conda 命令找不到或 (base) 不出现这个前面提了一部分这里系统地归纳一下排查顺序首先执行export PATH/home/你的用户名/anaconda3/bin:$PATH conda --version如果这样 conda 能正常工作说明是配置加载的问题检查.bashrc或.zshrc。如果这样仍然提示找不到说明安装路径可能不在默认位置用如下命令搜索 conda 可执行文件find /home -name conda -type f 2/dev/null找到后把路径加进PATH即可。还有一种极端情况安装时用了 sudo而导致 conda 装到了 root 的家目录。解决方式是把原来安装目录手动删除后重装步骤在下面详细说。5.2 安装脚本卡住或者提示解压失败安装 Anaconda 时偶尔会卡在Unpacking payload ...这一步或者直接报错退出来。这通常是磁盘空间不足或者下载的安装包不完整。先检查磁盘df -hAnaconda 安装后大概需要 3GB 左右空间如果/home分区剩余空间小于 5GB建议先清理。另外就是校验安装包的 SHA256确认为完整文件后重新执行安装脚本。也会遇到杀毒软件或系统安全策略拦截安装脚本的情况但 Ubuntu 默认没有这类干扰主要就是磁盘和包完整性的问题。5.3 其他程序默认使用系统 Python而不是 conda Python这个问题很隐蔽。明明终端里python指向的是 anaconda3/bin/python但某些第三方程序比如一些编辑器插件、系统服务还是会调用系统自带的/usr/bin/python3。原因在于某些程序在启动时显式指定了/usr/bin/python3或者这些程序通过绝对路径调用解释器根本不经过 PATH 查找。这种情况下不要和系统较劲需要在程序本身的配置文件里指定 Python 路径。最典型的情况是 VS Code 的 Python 插件它默认使用的解释器不一定是 conda 环境需要在 VS Code 里按CtrlShiftP输入Python: Select Interpreter手动选择 conda 环境。还有一个小提醒不要试图删除或替换系统自带的 Python。Ubuntu 系统底层很多工具依赖/usr/bin/python3强行改动可能导致系统桌面、软件中心、apt 等出现各种诡异问题。我见过有人用sudo ln -sf把系统 python3 链接到 conda 的 python结果系统重启后图形界面起不来教训非常深刻。5.4 SSL 证书报错conda 安装包的时候提示 CondaSSLError这个在配置完镜像源后比较常见。通常表现为CondaSSLError: Encountered an SSL error. Most likely a certificate verification issue.原因多半是镜像源是 HTTP 而非 HTTPS或者镜像源的证书过期。清华源目前是 HTTPS一般没问题。如果用了一些不规范的第三方源可以在~/.condarc里配置ssl_verify: false配置后执行conda clean -i conda update --all不过要说明一点关掉 SSL 验证会降低安全性只建议在无法解决证书问题时临时使用而且仅限内网环境和可信源。我个人更推荐换一个官方可靠度高的镜像源而不是直接关校验。5.5 卸载重装 Anaconda干干净净不留残留装坏了想重装或者系统越用越乱想彻底清理Anaconda 的卸载比安装容易踩坑因为涉及环境变量、配置文件等残留。最稳妥的步骤如下先清理所有 conda 环境conda env list conda remove --name 环境名 --all继续依次删除 Anaconda 安装目录和配置文件rm -rf ~/anaconda3 rm -rf ~/.conda rm -rf ~/.condarc最后从.bashrc或.zshrc中手动删除 conda 初始化代码块就是前面提到的那段# conda initialize 到# conda initialize 之间的内容。如果不删重装时可能遇到新旧配置冲突。另外强调一个备份习惯卸载前确定项目代码都提交到 Git 或备份到其他目录因为~/anaconda3目录下有时候会放着你自己写的脚本删了就再也找不回来了。5.6 升级 Anaconda 的正确姿势有人会问安装完了以后想更新 Anaconda 本体是不是重新执行一遍安装脚本其实 Anaconda 更新和安装是两个概念。更新 Anaconda 的 conda 工具用conda update conda conda update anaconda这种方式只更新工具和 base 环境里的包不会动你已经创建的虚拟环境。如果想把 base 环境也升级到新版本 Python比如从 3.10 升到 3.11那就要小心了base 环境升级可能会破坏依赖。我的建议是如果需要新版本 Python直接创建一个新环境指定 Python 版本别折腾 base。很多人的 base 环境最后都变成了乱糟糟的“杂物间”就是因为什么都往里面装。6. 一些个人经验和最终建议装 Anaconda 这件事本身不难真正的难点在于后续怎么管理环境、怎么避免污染。我想从这些年实际使用的经验里挑几条最重要的建议分享给大家。第一能用 Miniconda 就别上 Anaconda。Anaconda 自带了一百多个预装包很多人装了以后真正用到的也就十个不到白白占用几个 GB 磁盘。Miniconda 只包含 conda、Python 和少量基础依赖需要什么装什么干净又轻量。如果你已经有 Python 基础知道如何用 pip 装包Miniconda 是更好的选择。下载地址也可以在清华镜像站找到。第二环境隔离是底线。每个项目建一个独立环境Python 版本、依赖包版本都在环境里固定下来。别怕多花那点磁盘空间一个环境通常几百 MB比你花一天时间排查依赖冲突划算多了。第三装完环境后的第一件事就是把这个环境导出成文件放到项目里方便复现。执行conda activate 项目环境 conda env export environment.yml以后换机器或者在别人电脑上复现项目只需要conda env create -f environment.yml一条命令环境恢复如初。这个习惯看起来简单但在团队协作和控制实验可重复性方面价值非常大。第四遇到问题先看官方文档和社区不要直接重装系统。很多 Ubuntu 下的问题都是环境变量、权限、源配置这三类原因重装系统解决不了根因。我见过太多人一遇到 conda 异常就格式化重来结果下次还在同一个地方跌跟头。按本文前面列出的排查顺序走一遍99% 的问题都能定位出来。最后分享一个小技巧如果经常在多个 conda 环境之间切换可以把常用环境的激活命令写成 alias 放在.bashrc里比如alias actpy39conda activate py39少敲几个字母命令行操作会顺手得多。Anaconda 在 Ubuntu 上安好后你的开发环境基本就落地了。剩下的就是在实际操作中慢慢熟练 conda 的命令和研究环境的理解这是每个人都要经历的积累过程。希望这篇内容能帮你少走点弯路。
返回列表