ARTICLE DETAIL

资讯详情

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

Ubuntu 20.04安装Anaconda全攻略:从环境配置到虚拟环境管理

Ubuntu 20.04安装Anaconda全攻略:从环境配置到虚拟环境管理 1. 项目概述与核心价值最近在帮几个刚接触数据科学和机器学习的同事配置开发环境发现很多人在Ubuntu 20.04上安装Anaconda时总会遇到一些看似简单却让人头疼的小问题。比如明明安装成功了重启终端后conda命令却找不到了或者激活base环境时弹出一堆警告。Ubuntu 20.04 LTS作为一款长期支持版本以其稳定性和广泛的社区支持依然是许多开发者和研究人员的首选系统。而Anaconda作为Python数据科学领域的“瑞士军刀”集成了包管理、环境管理和项目部署的完整生态能极大提升工作效率。但把这两者结合好尤其是让conda base环境稳定、顺畅地工作里面有不少细节值得说道。这篇文章我就结合自己多次安装配置的经验把从下载、安装到最终完美激活conda base环境的全流程拆解清楚并附上那些官方文档里不会写的“避坑指南”。2. 前期准备与安装包获取2.1 系统环境确认与依赖检查在开始下载安装包之前花几分钟确认一下系统状态能避免很多后续的兼容性问题。首先打开终端用uname -m命令查看你的系统架构。Ubuntu 20.04主要支持x86_64即64位和aarch64ARM架构如树莓派4B、某些云服务器实例。Anaconda官方为这两种架构都提供了安装脚本但默认下载页通常指向x86_64版本如果你是ARM架构需要特别留意选择正确的版本。接下来检查系统是否已安装wget或curl工具它们是我们从网络下载安装脚本的关键。通常Ubuntu 20.04最小化安装会自带curl但为了保险可以运行which wget和which curl来确认。如果都没有使用sudo apt update sudo apt install wget -y来安装wget我个人更习惯用wget因为它下载大文件时的进度显示更直观。还有一个容易被忽略的依赖是bzip2。Anaconda的安装包是一个.sh脚本但它内部解压数据时依赖bzip2工具。虽然绝大多数桌面版Ubuntu都已预装但某些服务器最小化镜像可能没有。可以通过apt install bzip2 -y快速安装。完成这些检查相当于给后续的安装流程扫清了道路。2.2 选择合适的Anaconda版本与镜像源直接访问Anaconda官网下载是最直接的途径但国内网络环境访问国外服务器速度可能很不理想甚至中断。这时使用国内镜像源就非常有必要了。清华大学开源软件镜像站和阿里云镜像站都提供了Anaconda的完整镜像。选择版本时你需要决定是安装完整的Anaconda发行版包含大量科学计算库约3GB还是更轻量化的Miniconda只包含conda和Python约400MB。对于大多数数据科学初学者或需要开箱即用环境的用户我推荐完整版因为它包含了Jupyter Notebook、Spyder IDE以及numpy、pandas、matplotlib等180多个常用包省去了大量手动安装的时间。如果你磁盘空间紧张或者明确知道自己需要哪些包追求极简那么Miniconda是更好的选择。以从清华镜像下载Anaconda3-2024.02-1-Linux-x86_64.sh这是一个示例版本号请以镜像站最新版本为准为例你可以使用以下命令。注意将链接中的版本号替换为镜像站列表中最新的版本。wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.02-1-Linux-x86_64.sh下载完成后务必使用sha256sum命令校验安装脚本的完整性与镜像站提供的校验和进行比对确保文件在下载过程中没有损坏。这是一个好习惯能避免因文件损坏导致的安装失败。3. 安装过程详解与关键步骤解析3.1 执行安装脚本与交互式配置拿到安装脚本后直接运行bash Anaconda3-*.sh即可开始安装。这里有几个关键交互步骤需要你做出选择它们直接影响后续的使用体验。首先安装程序会提示你阅读许可协议一直按回车翻页最后输入“yes”同意。接下来是最重要的一步选择安装路径。默认路径是/home/你的用户名/anaconda3。我强烈建议使用这个默认路径除非你有特殊需求。因为这是社区和大多数教程默认的路径使用非默认路径可能会在后续配置环境变量或某些IDE集成时遇到麻烦。然后安装程序会问你是否要运行conda init来初始化conda。这里必须输入“yes”这是整个安装过程中最容易出错、也最关键的环节。conda init的作用是将conda的命令行工具集成到你的shell通常是bash配置中具体来说它会在你的~/.bashrc文件末尾添加一段初始化脚本。如果你在这里选了“no”那么安装完成后每次新开终端窗口你都无法直接使用conda命令需要手动执行source ~/anaconda3/bin/activate来激活base环境非常不便。安装过程会持续几分钟期间会解压大量文件。安装完成后它会提示你是否要安装Microsoft VSCode这个根据个人需要选择即可不会影响conda本身。3.2 验证安装与手动初始化补救安装脚本运行完毕后它通常会提示你“关闭并重新打开终端”以使更改生效。但我们先不急着重启。首先我们可以手动让当前终端会话立即生效。执行source ~/.bashrc如果你使用的是zsh文件是~/.zshrc。现在尝试输入conda --version如果能看到版本号如conda 24.1.2说明conda命令已可用。更重要的验证是查看命令行提示符(base)是否出现。如果出现了(base)恭喜你conda的base环境已经自动激活了。这意味着你当前终端会话下的Python、pip等命令都指向Anaconda自带的版本而不是系统自带的Python。注意一个常见陷阱。有时即使安装了重启终端后(base)环境也没有自动激活或者conda命令找不到。这几乎都是因为conda init没有成功执行或.bashrc的修改未生效。补救办法是手动执行初始化首先找到你的Anaconda安装路径下的bin目录然后运行./conda init bash。例如/home/username/anaconda3/bin/conda init bash。执行后同样再source ~/.bashrc即可。4. Conda Base环境深度配置与优化4.1 理解Conda Base环境与系统Python的隔离成功激活(base)环境后我们需要理解它的本质。Conda的base环境是一个独立的、与系统Python完全隔离的软件环境。你可以通过which python和python --version来验证。在(base)环境下which python应该输出类似/home/username/anaconda3/bin/python的路径版本通常是Anaconda打包的最新稳定版如Python 3.11。而在未激活任何conda环境时可以通过conda deactivate退出base环境which python3可能指向/usr/bin/python3这是Ubuntu系统自带的Python。这种隔离性带来了巨大好处你可以在base环境里随意安装、升级、降级任何Python包而完全不用担心会破坏系统依赖比如Ubuntu的软件中心或某些系统工具可能依赖特定版本的Python包。所有通过conda install或pip install安装的包都只存在于Anaconda的安装目录下。4.2 配置国内Conda频道加速安装默认情况下conda从官方的defaults频道下载包服务器在国外速度很慢且容易超时。因此配置国内镜像源是安装后的首要优化步骤。我们可以为conda添加清华大学的镜像频道。首先执行以下命令来添加频道。这里有一个关键技巧添加频道的顺序很重要。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 --set show_channel_urls yes最后一条命令--set show_channel_urls yes非常有用它让conda list命令显示每个包是从哪个频道安装的便于排查问题。配置完成后可以通过conda config --show channels查看当前频道列表确保清华源在顶部。此外对于pip安装有些包可能只在PyPI上也可以配置国内源。在base环境下创建或修改~/.pip/pip.conf文件内容如下[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn这样无论是conda还是pip都能享受飞快的下载速度。5. 高级管理环境操作与故障排查5.1 创建与管理独立的Conda虚拟环境虽然base环境很好用但最佳实践是不要直接在base环境里进行项目开发。你应该为每个独立项目创建专属的虚拟环境。这样做的好处是不同项目可能依赖同一个包的不同版本虚拟环境可以完美隔离这些依赖避免冲突。创建新环境命令很简单conda create -n my_project_env python3.9。这里-n后面跟环境名python3.9指定了该环境的Python版本。创建完成后使用conda activate my_project_env激活它。你会发现命令行提示符从(base)变成了(my_project_env)。在这个环境里安装的包完全独立于base和其他环境。管理环境的常用命令如下conda env list或conda info --envs列出所有已创建的环境当前激活的环境前面会有一个星号*。conda remove -n my_project_env --all删除整个虚拟环境及其所有包。conda list列出当前环境下所有已安装的包。conda export -n my_project_env environment.yml将环境的精确配置包括所有包及其版本号导出到一个YAML文件。这个文件是项目复现的利器其他人拿到后只需运行conda env create -f environment.yml就能重建一模一样的环境。5.2 常见问题与解决方案实录即便按照步骤操作也可能会遇到一些问题。这里我记录了几个最常见的问题和解决方法。问题一重启终端后conda命令未找到(base)环境未自动激活。这几乎总是shell配置问题。首先检查~/.bashrc文件末尾是否有conda初始化代码块通常以# conda initialize 开头。如果没有手动运行~/anaconda3/bin/conda init bash。如果有但依然不生效可能是你的终端默认启动的shell不是bash比如是zsh。你需要根据自己使用的shell运行对应的初始化命令如conda init zsh。然后关闭所有终端窗口重新打开。问题二执行conda activate时提示CommandNotFoundError: Your shell has not been properly configured to use conda activate。这个错误在新版本conda中常见。原因是conda 4.4之后激活环境的命令从source activate改为了conda activate但shell配置可能还沿用旧逻辑。解决方案是确保你已正确运行conda init。如果问题依旧可以尝试一个临时方法先使用source ~/anaconda3/bin/activate然后再用conda activate env_name。但根本解决之道还是重新运行conda init。问题三安装或更新包时出现CondaMemoryError或速度极慢。内存错误通常发生在处理大型包或元数据时。可以尝试清理conda缓存来释放空间conda clean --all。速度慢则首先检查是否配置了国内镜像源见4.2节。另外在安装时指定频道有时能更快找到包例如conda install -c conda-forge numpy。问题四如何彻底卸载Anaconda如果你想重新安装或者完全移除步骤需要谨慎。首先删除整个安装目录rm -rf ~/anaconda3。然后编辑~/.bashrc或~/.zshrc等删除conda初始化添加的那一段代码块从# conda initialize 到# conda initialize 。最后可能还需要检查并清理~/.conda、~/.condarc等隐藏目录和配置文件。完成这些操作后建议重启终端。6. 集成开发环境IDE配置建议配置好conda环境后下一步就是把它和你喜欢的代码编辑器或IDE结合起来打造顺手的开发工作流。这里以最流行的两款IDE为例。VS CodeVS Code对Conda环境的支持非常友好。首先确保安装了Python扩展。打开一个项目文件夹后点击VS Code底部状态栏的Python版本号或者按CtrlShiftP输入“Python: Select Interpreter”它会自动扫描系统中所有可用的Python解释器包括Conda环境。你只需选择对应的my_project_env环境下的python即可。之后VS Code的终端也会自动激活该Conda环境。PyCharm在PyCharm中配置稍显复杂但更强大。打开File - Settings - Project: your_project - Python Interpreter。点击右上角的齿轮图标选择Add...。在弹出的对话框中选择Conda Environment然后勾选Existing environment并在后面的路径选择中导航到你的Conda环境目录例如~/anaconda3/envs/my_project_env/bin/python。选择后PyCharm会识别该环境所有已安装的包。实操心得无论用哪种IDE核心都是让IDE指向Conda虚拟环境下的Python解释器。这样做的好处是IDE的代码补全、调试、包管理等功能都会基于该环境与你命令行下的操作完全同步避免了“在终端能运行在IDE里报错”的尴尬局面。7. 日常使用技巧与维护为了让Conda环境长期稳定运行定期维护是必要的。以下是一些日常技巧1. 更新Conda本身和Anaconda元包Conda作为一个工具也在持续更新。可以定期运行conda update conda来更新包管理器。对于base环境可以运行conda update anaconda来更新整个Anaconda发行版包含的核心科学栈。注意更新操作有时会解决一些包之间的隐性依赖冲突。2. 谨慎更新Python版本在已有的环境中特别是base环境不要轻易使用conda update python来升级Python主版本如从3.9到3.10。这可能会破坏大量已安装包的兼容性。正确做法是创建一个新环境并指定新的Python版本。3. 利用conda search和conda list在安装一个不确定版本的包之前先用conda search package_name查看所有可用版本。用conda list可以查看当前环境安装了哪些包结合grep命令可以快速过滤例如conda list | grep numpy。4. 环境克隆与备份当你对一个环境的状态非常满意想以此为基础做另一个实验时可以使用克隆功能conda create -n new_env --clone old_env。比重新安装所有包要快得多。定期将重要的环境导出为environment.yml文件并纳入版本控制如Git是保证项目可复现性的黄金准则。5. 处理包冲突有时安装新包时conda会提示“找不到满足所有依赖关系的版本”。这通常是因为你要求安装的包与现有环境中的某些包版本冲突。这时可以尝试a) 创建一个全新的干净环境来安装b) 使用conda install --freeze-installed命令尝试安装该命令会尽量不升级已存在的包c) 使用pip在conda环境内安装作为最后手段因为pip不处理conda的依赖关系可能引发混乱。
返回列表