
Anaconda 下载安装全流程给机器学习初学者的第一课如果你刚接触机器学习大概率会被各种环境问题搞得怀疑人生。今天装好了某框架明天又因为 Python 版本不对跑不起来再后来发现装某个库的时候把系统环境弄崩了。我在带新人入门时经常说一句话在动手写第一行机器学习代码之前先把环境管理这件事想清楚否则后面每一个项目都会踩一遍重复的坑。Anaconda 就是目前处理这个问题最主流、最省心的方案它集成了 Python 解释器、常用科学计算库、虚拟环境管理工具和包管理器基本覆盖了机器学习开发前期 90% 的环境需求。本文就围绕 Anaconda 的下载、安装、验证和常用配置把从零到能跑通 PyTorch 或 TensorFlow 的完整流程讲一遍。这篇教程适合几类读者刚接触机器学习、还没配置好本地 Python 环境的新手电脑上 Python 环境已经被搞乱、想推倒重来的人以及想在自己电脑上搭建一套干净、可复现的机器学习实验环境的学生或开发者。不管是 Windows、macOS 还是 Linux下文都会覆盖到。1. 机器学习项目为什么普遍选择 Anaconda 而非裸装 Python1.1 机器学习开发中的依赖地狱问题机器学习项目对第三方库的依赖是非常夸张的。你装一个 PyTorch它会自动把 numpy、pillow、typing-extensions 等一系列包带进来装一个 scikit-learn又要匹配特定版本的 scipy 和 joblib。如果每个项目都用系统全局 Python 直接 pip install用不了多久你根本不知道当前环境里到底装了哪些包、哪些版本是相互兼容的。真实经历我有一次在全局环境里装了最新版 pandas结果第二天跑一个旧项目直接报错报错信息指向 pandas 某个 API 已废弃。项目本身没改过任何代码纯粹是被全局环境的包版本升级牵连了。这种事只要遇到一次你就能理解为什么机器学习社区普遍推荐用虚拟环境隔离每个项目。1.2 Anaconda 解决环境管理问题的方式Anaconda 本质上是一个 Python 发行版加上一套环境管理工具。它包含三个核心组件conda 包管理器负责安装、升级、卸载各种包、conda 虚拟环境通过conda create创建独立的 Python 环境不同环境之间互不干扰、以及预装的一系列数据科学和机器学习库如 numpy、pandas、matplotlib、scikit-learn 等。这里有个容易混淆的点需要单独说一下Anaconda 和 Miniconda 的关系。Anaconda 是一个比较大的发行版安装包接近 1GB自带几百个常用库Miniconda 只包含 conda 和 Python是轻量版安装包只有几十 MB。如果你硬盘空间充足、希望开箱即用选 Anaconda如果你更习惯按需安装、不想被预装库占空间选 Miniconda 就够了。从机器学习实战的角度看我更推荐初学者用 Anaconda因为很多教程默认 Anaconda 环境装好的库比较全省去大量排查缺失依赖的时间。1.3 为什么不要直接用系统自带的 Python这里必须提醒一句尤其是 macOS 用户系统自带的 Python 版本通常比较旧而且直接动它是很危险的一件事因为系统部分工具可能依赖那个 Python。Windows 用户从官网下载的 Python 本身没问题但装到一半可能因为 PATH 环境变量配置不正确导致python命令找不到。更何况全局环境下 pip 安装的包越来越多之后整个环境的可用性会越来越脆弱。Anaconda 通过把 Python 和所有包隔离在自己的目录中从根本上避免了对系统级 Python 的污染。conda 创建的环境之间是相互独立的文件目录切换环境就是把 PATH 切换过去的过程干净且可逆。2. 下载前的关键决策版本选择与安装包获取渠道2.1 Python 版本与 Anaconda 版本的对应关系Anaconda 官网的下载页面会根据日期提供对应不同 Python 版本的安装包。比如当前官网可能会提供 Python 3.12 或 3.11 版本的 Anaconda。建议选较新但非最新的版本因为部分机器学习库对最新 Python 版本的适配会慢半拍。关于 64 位和 32 位的问题现在基本不需要纠结几乎所有电脑都是 64 位系统。除非你的电脑还是十几年前的 32 位硬件否则直接选 64 位安装包。需要特别注意的是操作系统位数与安装包位数必须匹配否则装完会出现奇怪的问题。2.2 从官网下载还是用国内镜像Anaconda 官网是 https://www.anaconda.com/download 。打开之后点 Download 按钮页面会显示适合你当前操作系统的安装包。这里有一个非常现实的问题官网服务器在国外国内网络环境下下载速度可能比较慢甚至经常中断。这种情况下强烈建议使用国内镜像站下载。清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 是一个稳定的选择。打开之后可以看到按日期组织的目录选择最新日期的目录进去找对应的安装包。因为镜像站同步有一定延迟镜像上的最新版本可能比官网落后几个小版本但这完全不影响使用。另外阿里云也有镜像地址是 https://mirrors.aliyun.com/anaconda/archive/选择逻辑和清华镜像一样。2.3 安装包文件名怎么解读以 Windows 安装包为例文件名类似Anaconda3-2024.10-1-Windows-x86_64.exe。拆开来解读Anaconda3表示 Python 3 版本的 Anaconda现在没有 Python 2 版本了但历史名称保留了2024.10表示发布日期x86_64表示 64 位架构。macOS 的安装包后缀是.pkg或.sh其中arm64是针对 Apple Silicon 芯片M1/M2/M3 系列的版本x86_64是针对 Intel 芯片的版本。这一点千万不能选错Apple Silicon 的 Mac 强行装 Intel 版本也能用但要经过 Rosetta 转译性能和稳定性都受影响。2.4 下载过程中常见的失败场景与应对下载安装包时最常遇到的情况是下载到一半进度条不动了或者显示网络错误。解决办法是多试几次或者切换镜像源。如果用的是浏览器下载尽量别开太多占用带宽的应用。有些浏览器自带下载加速功能对 Anaconda 这种大文件的断点续传帮助挺大。还有一个容易被忽略的重点安装包的完整性校验。官网页面提供了 SHA-256 校验值下载完成后可以用命令对比一下本地文件的哈希值确保文件没有在下载过程中损坏。Windows 下用 PowerShell 执行Get-FileHashmacOS 和 Linux 用shasum -a 256。3. Windows 系统安装 Anaconda 的完整步骤与避坑说明3.1 双击安装包之前的准备工作第一步不是双击 exe而是先检查一下自己的 Windows 登录用户名是不是中文。如果用户名是中文比如C:\Users\张三Anaconda 安装后可能在某些依赖路径解析时出问题较新版本虽然做了很多兼容性处理但依然建议尽量避免。遇到这种情况可以临时创建一个英文名的本地管理员账号来安装和使用 Anaconda或者先用一个英文路径的第三方工具间接调用。不过这不是一个特别普遍的问题如果你的用户名已经是英文可以放心往下走。另外安装前把杀毒软件暂时关掉或者退出有些安全软件会对 conda 的写入行为产生误报导致安装过程中文件缺失。这个建议听起来有点反直觉但确实是我遇到过很多次的实际问题。3.2 安装选项中必选和必不选的项双击.exe安装包后安装向导会让你选择 Install for 选项建议选择 Just Me (recommended)。这个选项会把 Anaconda 安装到当前用户目录下不需要管理员权限也不容易和系统级文件产生冲突。选择 All Users 虽然也可以但后续 conda 在安装包时偶尔会遇到权限不足的问题得不偿失。接下来有一个关键勾选项Add Anaconda3 to my PATH environment variable把 Anaconda 加入系统环境变量——默认是不勾选的我的建议是如果你是一个纯新手可以勾上方便直接从 cmd 里使用 conda 命令如果你已经会用命令行建议不勾。为什么这么说因为 Anaconda 自带的 Python 如果加到了 PATH 最前面会覆盖系统里已有 Python 的优先级可能导致其它工具的 Python 解释器被劫持。Register Anaconda3 as my default Python——不推荐勾选。如果操作系统里已经安装了其他 Python 发行版勾选这个选项会篡改默认 Python 关联之后在命令行运行python时可能会打开 Anaconda 的 Python与预期不符。3.3 安装路径选择与目录规范安装路径默认是C:\Users\你的用户名\anaconda3。如果你不想让 C 盘空间压力太大可以改到 D 盘等其它位置比如D:\Anaconda3。但有一个原则必须遵守安装路径不要包含中文、空格和特殊字符。有些老版本的依赖库在路径带空格时会出现奇怪的问题虽然新版改善明显但没必要去赌这个概率。安装过程大概需要几分钟到十几分钟不等取决于硬盘速度。安装完成后开始菜单里会出现 Anaconda Prompt、Jupyter Notebook、Spyder 等入口这些是后面经常用到的工具。3.4 Windows 安装后的 PATH 处理与 Anaconda Prompt 的使用如果在安装时没有勾选加入 PATH那你在 cmd 里敲conda是找不到命令的。日常操作建议用开始菜单里的Anaconda Prompt它已经自动配置好了 Anaconda 相关的环境变量可以直接执行conda、python、jupyter等命令。这个终端相当于一个被 Anaconda 包装过的 cmd在它的环境下运行命令不会碰到 PATH 问题。需要修改 PATH 的时候可以打开系统属性 → 高级 → 环境变量在用户变量 PATH 中新增三个条目D:\Anaconda3、D:\Anaconda3\Scripts、D:\Anaconda3\Library\bin具体路径根据你的安装位置调整。这样做的好处是 cmd 里也能直接用 conda 命令坏处是系统全局环境多了一个 Python 入口。我的习惯是大多数时候用 Anaconda Prompt只有在确认需要时才改 PATH减少和系统里其它 Python 工具的冲突。4. macOS 与 Linux 安装 Anaconda 的细节差异4.1 macOS 安装包形式与安装步骤macOS 用户从官网下载到的是.pkg安装包图形化向导或者.sh脚本命令行安装。.pkg安装方式比较简单双击后一路继续即可默认安装到/opt/anaconda3。.sh方式更灵活适合喜欢命令行操作的用户执行bash Anaconda3-xxx-MacOSX-arm64.sh后会进入文本交互界面一路回车接受协议最后会询问是否将 conda init 写入 shell 配置建议选择 yes。需要额外提醒 macOS 用户如果你安装的是 Apple Silicon 版本arm64conda 环境下默认使用的 Python 是原生 arm64 的。当你用 pip 安装某些包时如果该包暂时没有提供 arm64 的预编译 wheelpip 会尝试从源码编译大概率会因为缺少编译工具链而失败。解决方式是用 conda 安装优先conda 的包源中会提供适配当前架构的预编译包。4.2 Linux 安装与配置 shell 环境Linux 下下载.sh文件后执行bash Anaconda3-2024.10-Linux-x86_64.sh安装向导会提示许可协议输入yes继续然后选择安装路径默认为~/anaconda3。安装完成后如果提示是否运行conda init选 yes。这样会自动修改~/.bashrc实现每次打开终端自动激活 conda 环境。如果你用的是 zsh需要在~/.zshrc里也加上 conda init 的配置。安装程序会检测你当前使用的 shell 并写入对应配置但如果你中途切换过 shell就需要手动执行conda init zsh4.3 Linux 服务器环境的无图形化安装场景很多学校实验室会搭建深度学习服务器给每个学生分配账号。服务器通常没有图形界面只能在纯命令行环境安装 Anaconda。这种情况下使用.sh脚本完全没有问题唯一的额外要求是每个用户自己安装一份 Anaconda 到自己的 home 目录尽量避免共用一套。虽然也可以把 Anaconda 装在/opt下让所有人共用但多人共用同一个基础环境时一个人升级包可能导致其他人的环境被破坏。每个人独立安装一份到自己的 home 目录互相隔离反而最省心。服务器上安装时还需要关注磁盘配额。Anaconda 基础安装大概占 3GB 左右空间加上后续创建的环境和安装的包空间消耗还会增加。提前用df -h看一下磁盘剩余空间再决定装在哪个盘。5. 安装完成后的第一轮验证确认环境真的可用了5.1 conda 版本与 Python 版本的验证方法安装完成后打开 Anaconda PromptWindows或终端macOS/Linux执行conda --version如果输出类似conda 24.9.2的版本信息说明 conda 已经能正常工作。接着执行python --version这里要确认输出版本和预期一致。如果你用的是 Anaconda默认的 base 环境里的 Python 版本就是 Anaconda 自带的版本。如果系统里还装了其他 Python建议在 Anaconda Prompt 里执行which pythonWindows 用where python查看当前实际调用的 Python 路径确保指向的是 Anaconda 目录下的 python。5.2 检查预装的核心库是否完整Anaconda 默认自带了很多机器学习必备库可以逐个导入测试python -c import numpy, pandas, matplotlib, sklearn; print(core packages ok)如果没有报错说明核心依赖没有问题。接下来可以测试一下科学计算能力python -c import numpy as np; a np.arange(12).reshape(3, 4); print(a.sum())输出 66 就说明 numpy 的运算没问题。再验证一下 Jupyterjupyter notebook --version如果能看到版本号说明 Jupyter 已经就绪后续做交互式编程可以直接打开浏览器使用。5.3 配置国内 conda 镜像源提升下载速度安装完成后第一件应该做的事就是把 conda 的默认下载源切换成国内镜像。原因很简单conda 默认源在国外国内网络环境下下载包经常只有几十 KB/s遇到大包能急死人。切换源的操作如下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 下载包时会优先从清华镜像拉取。还可以用conda config --show channels检查当前配置是否生效。有一点需要注意镜像同步是定期进行的如果你非要装一个镜像上还没有的最新版本包可以临时加-c conda-forge指定官方 conda-forge 频道但这会让下载速度回到低速状态。所以建议日常环境以稳定为主不要盲目追新版本。6. 从 base 环境到机器学习虚拟环境创建和使用 conda 环境6.1 为什么不建议直接使用 base 环境做项目base 环境是 Anaconda 安装后的默认环境。我强烈建议不要在 base 环境里装各种不同项目的依赖原因还是环境隔离问题。你在做项目 A 时 pip 升级了某个包项目 B 可能就因此跑不起来了。在 base 环境里折腾得越久环境就越混乱最后只能推倒重来。正确的做法是每个项目或者每一类项目创建独立的 conda 环境。比如一个项目用 PyTorch一个项目用 TensorFlow那就建两个环境。虽然同一个环境里理论上也可以同时装两个框架但它们对 CUDA 版本、numpy 版本的依赖可能互相冲突最好分开。6.2 创建虚拟环境的核心命令与参数解释创建环境conda create -n ml-dev python3.11这条命令创建了一个名为ml-dev的新环境并指定 Python 版本是 3.11。-n后面的名字可以自己定建议起得有意义比如pytorch-env、tf-env。为什么不直接创建在最前面因为后续你会在不同环境之间频繁切换名字起得好能减少出错。激活环境conda activate ml-devWindows 旧版可能需要用activate ml-dev但现在新版 conda 两种写法都支持。激活成功后命令行提示符前面会出现(ml-dev)字样这就说明当前已经切换到新环境了。退出环境conda deactivate查看环境列表conda env list当前激活的环境前面会有一个*号标记。6.3 用 conda 安装机器学习库时的源与通道选择激活环境后安装 PyTorch 等库时需要考虑渠道问题。PyTorch 官方给出的安装命令通常会包含--index-url https://download.pytorch.org/whl/cu121这样的参数。在 conda 环境里可以用 pip 执行pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121这里面的cu121表示 CUDA 12.1 版本。如果你电脑没有 N 卡或者只是用 CPU 跑测试装 CPU 版本即可pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu注意pip 安装的包和 conda 安装的包在同一个环境里可以共存但 pip 无法管理 conda 已安装的包反之也一样。所以在同一个环境里最好固定用一种包管理器混着用容易在卸载时出现残留。6.4 处理环境克隆与导出需求当你需要在另一台机器上复现当前环境时可以用conda env export environment.yml然后在另一台机器上执行conda env create -f environment.yml这个操作可以把当前环境的完整依赖列表导出并重建是保证项目可复现的重要手段。有一点需要注意conda env export导出的是当前平台的内容换到不同操作系统时可能会出现部分包源不兼容的情况需要手动调整。7. 高频踩坑集锦我从大量安装实践中总结的问题与解法7.1 conda 命令找不到这个问题的根源几乎都是 PATH 配置不正确。Windows 下检查是否把 Anaconda 目录以及 Scripts 目录加入到了 PATHmacOS 和 Linux 检查 shell 配置文件里是否有 conda init 的代码。还有一个容易被忽略的情况安装了 Anaconda 之后又安装了 Miniconda两个发行版的 conda 命令在 PAT H中发生冲突导致conda指向了旧版本或不完整的安装。这种情况下建议只保留一个卸载另一个时要把环境变量里对应的条目一并清理干净。7.2 安装包时提示 Solving environment 卡住conda install在执行时经常卡在 Solving environment 这一步等很久都没反应。常见原因是 conda 默认的依赖求解流程在遇到需要校验大量包版本时会非常慢。解决办法有两个一是安装libmamba求解器新版 conda 默认已经使用 mamba 作为底层求解器如果还在用旧版 conda可以执行conda update -n base conda conda install -n base conda-libmamba-solver conda config --set solver libmamba二是直接改用mamba工具它是 conda 的替代品速度提升非常明显。可以用以下命令安装 mambaconda install -n base mamba之后用mamba install代替conda install速度会快很多。7.3 CondaHTTPError 与镜像源失效的问题有时候切换了清华镜像之后会出现 CondaHTTPError提示 404 或超时。这可能是因为镜像目录结构更新了已经切换的频道地址失效。解决办法是把现有的 channel 配置清掉重新添加最新的地址。查看当前配置conda config --show channels如果发现 channel 地址是旧格式比如pkgs/free在新目录中可能已经不存在可以重置conda config --remove-key channels conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/重新添加之后再试装包。如果清华镜像暂时不可用可以试试中科大镜像或者阿里镜像切换方式相同。7.4 pip 安装的包在 Jupyter 里 import 不到这是一个非常经典的问题。你可能在 conda 环境里用 pip 装了某个包但在 Jupyter Notebook 里 import 时报 ModuleNotFoundError。最常见的原因是Jupyter 启动时用的内核并不是你当前所在的 conda 环境。解决办法是安装 ipykernel 并注册内核conda activate ml-dev pip install ipykernel python -m ipykernel install --user --name ml-dev --display-name Python (ml-dev)这样启动 Jupyter 后可以在新建菜单里看到名为Python (ml-dev)的内核选择它就能正确使用对应的 conda 环境。7.5 磁盘空间不足与缓存清理conda 在使用过程中会留下大量缓存占空间惊人。清理命令conda clean --all这个命令会删除缓存的安装包和解压临时文件可能是几个 GB 的空间。另外 pip 也有缓存清理方式pip cache purge定期执行这两个清理命令能避免环境逐渐膨胀到影响系统性能。7.6 卸载 Anaconda 时一定要彻底如果你想卸载重装Windows 下可以通过添加或删除程序卸载但残留目录和 PATH 条目需要手动清除。macOS 下没有自动卸载器需要手动删除/opt/anaconda3目录并清理 shell 配置文件里的 conda init 代码。Linux 同理。如果没有彻底清理干净就重装新版本很可能和旧配置冲突装完还是用不了。具体来说卸载后检查这几个位置是否残留Anaconda 安装目录本身用户目录下的.conda文件夹和.condarc配置文件操作系统环境变量中的 Anaconda 相关 PATH 条目shell 配置文件中conda initialize相关的代码块清理干净后再重装基本不会再遇到玄学问题。8. 常用配置进阶让 Anaconda 用起来更顺手8.1 自动激活环境的开关设置每次打开终端时conda 默认会激活 base 环境。如果你不希望这样尤其是已经有了其他 Python 环境的情况下可以关掉自动激活conda config --set auto_activate_base false这样打开终端后不会自动进入 base需要时手动conda activate。对于经常在多个环境之间切换的人来说这样更清爽。8.2 为不同机器学习框架创建独立环境的具体方案我个人的习惯是建立三个环境base保留 Anaconda 自带的库不额外安装任何项目依赖tf-env专门的 TensorFlow 环境Python 3.11TensorFlow 2.xtorch-env专门的 PyTorch 环境Python 3.11PyTorch 2.x torchvision每个环境创建后先装对应框架再装 jupyter 和 ipykernel。这样项目之间互相隔离切环境只需要敲一行命令。因为 conda 环境是以目录为单位的磁盘空间充足时多建一两个环境没有坏处比反复在同一个环境里装装删删要省心得多。8.3 设置 pip 和 pip 源的全局优化pip 也建议把源切到国内避免安装 Python 包时速度过慢。一次性生效的方式pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这条命令会在用户的 pip 配置文件中写入默认源地址之后所有 pip install 都会走清华的 PyPI 镜像速度提升非常明显。8.4 Spyder 与 Jupyter 的启动方式Windows 开始菜单里带的各种快捷方式本质上就是调用了不同工具。Anaconda Prompt 里输入spyder可以打开集成开发环境输入jupyter notebook或jupyter lab可以打开交互式笔记本。如果你在某个 conda 环境中工作务必先conda activate再启动这些工具否则打开的可能是 base 环境里的 Jupyter环境里的包自然就 import 不到了。9. 最后一个实际环节从安装到跑通一个简单的机器学习样例安装验证结束后最直观的检验方式是跑一个最简单的机器学习程序。以下用 scikit-learn 训练一个手写数字识别模型数据量小、速度快能在几秒钟内验证环境是否完整可用。在已经激活的 conda 环境里执行from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score digits load_digits() X_train, X_test, y_train, y_test train_test_split( digits.data, digits.target, test_size0.2, random_state42 ) clf RandomForestClassifier(n_estimators100, random_state42) clf.fit(X_train, y_train) y_pred clf.predict(X_test) print(accuracy:, accuracy_score(y_test, y_pred))正常可以看到类似accuracy: 0.97左右的输出。如果能顺利完成说明 Anaconda、conda 环境、scikit-learn 库、Python 解释器这条链路已经完全打通你的机器学习开发环境正式就绪。如果这一步出现 ModuleNotFoundError说明 scikit-learn 没有安装在你当前激活的环境里执行pip install scikit-learn或者conda install scikit-learn后重试。如果想验证 PyTorch 环境可以运行一行简单的张量计算import torch x torch.rand(3, 3) print(x)能看到随机张量输出说明 PyTorch 已经正常工作了。我个人在给新手配置环境时一直坚持一个原则环境配置过程不是装完就完事而是每一步都要知道自己在做什么、为什么这么做。很多人装 Anaconda 时一路点下一步到头来出现问题了根本不知道从哪排查。如果你能理解 conda 环境隔离的原理、知道 PATH 的作用、掌握验证环境的基本命令那后续任何环境相关的坑对你来说都只是排查时间长短的问题而不是束手无策的难题。这套流程我已经反复用过很多次从个人电脑到实验室服务器从 Windows 到 Linux基本都是这个套路。照着操作一遍你就可以把精力真正集中在机器学习本身了。