推荐M1/M2/M3 Mac用户优先安装miniforge3而非Anaconda,因其专为Apple Silicon优化、体积小、启动快、默认conda-forge源且原生支持osx-arm64;若坚持用Anaconda,必须下载ARM64版本并手动配置~/.zshrc环境变量,否则conda命令不可用。

别装 Anaconda,M1 Mac 上它不是最优解 —— 安装后大概率遇到命令不可用、包不兼容、Python 运行慢(Rosetta 转译)、甚至 conda 本身报错。 推荐直接用 miniforge3,它是专为 Apple Silicon 优化的轻量级 conda 发行版,体积小、启动快、默认 channel 就是 conda-forge,绝大多数数据科学包(包括 PyTorch、TensorFlow CPU 版)已原生支持 osx-arm64。
为什么 conda 命令在终端里找不到
这不是安装失败,而是 shell 配置没生效。M1 Mac 默认用 zsh,但 Anaconda 官方 .pkg 安装器有时不会自动写入 ~/.zshrc,尤其当你之前改过 shell 或有多个配置文件时。
- 先确认安装路径是否存在:
ls -la ~/anaconda3或ls -la /opt/anaconda3 - 如果存在,手动追加环境变量:
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.zshrc(注意:不要漏掉引号和>>) - 重载配置:
source ~/.zshrc - 验证:
which conda应该返回路径;conda --version有输出才算真正可用 - 常见坑:用了
bash启动终端却改了zshrc;或安装时选了/opt路径但没执行sudo chown -R $(whoami) /opt/anaconda3导致权限拒绝
miniforge3 替代方案:5 分钟完成安装 + 环境就绪
这是目前 M1/M2/M3 Mac 上最稳的路径,不依赖 GUI,纯命令行,无 Rosetta 中转。
- 下载对应架构脚本:
curl -O https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh - 静默安装:
bash Miniforge3-MacOSX-arm64.sh -b -p $HOME/miniforge3 - 初始化 shell:
$HOME/miniforge3/bin/conda init zsh(会自动修改~/.zshrc) - 重启终端或运行:
source ~/.zshrc - 验证:
conda --version和python --version(通常是 3.11+,原生 arm64) - 可选加速:运行
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/,再conda config --set show_channel_urls yes
conda install 卡住或报 UnsatisfiableError
M1 上最常踩的坑不是“装不上”,而是“装了但不是 arm64 版”——比如误装了 x86_64 包,导致后续 import 失败或性能暴跌。
- 检查当前平台:
conda info --platform必须输出osx-arm64,否则整个环境已失效 - 创建新环境时务必显式指定 Python 版本:
conda create -n ml-env python=3.11(避免默认拉取旧版或跨架构包) - 安装关键库优先走
conda-forge:conda install -c conda-forge pytorch torchvision cpuonly,而不是pytorch官方 channel(后者尚未全面支持 arm64) - 如果 pip 安装也慢,配清华源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - 绝对避免:
conda install defaults::xxx——defaultschannel 基本没有osx-arm64构建,强行装会触发降级或冲突
真正麻烦的不是安装动作本身,而是确认每个环节都在 osx-arm64 轨道上运行。哪怕 conda --version 成功了,python -c "import torch; print(torch.__config__.show())" 才是最终判决——里面必须出现 arm64 或 apple silicon 字样,而不是 x86_64 或 rosetta。

















