1. 安装前的准备与思路1.1 为什么Mac上装Python环境首选Anaconda先说个我自己踩过的坑。早几年我刚换到Mac上写Python脚本时图省事直接在官网下了个Python安装包装完以后才发现事情没那么简单——pip装包动不动就权限报错系统自带的Python 2.7还和后来装的Python 3.x混在一起每次打开终端都得先想清楚自己到底在用哪个解释器。后来折腾了几天才老老实实换成了Anaconda从此再也没为环境问题失眠过。Anaconda本质上是一个Python发行版它把Python解释器、conda包管理器、以及一大票科学计算常用的库NumPy、Pandas、Matplotlib这些打包在一起的装上以后开箱即用。对于在Mac上做数据分析、机器学习、或者日常写爬虫脚本的朋友它省掉的不只是几分钟的安装时间而是未来几个月反复折腾依赖地狱的烦恼。conda这个名字听起来陌生类比一下就是Python界的“应用商店”它能帮你一键创建多个互相隔离的Python环境每个环境用不同版本的Python或库互不干扰。适合谁来参考这篇两类人最需要。一类是完全没装过Python的小白跟着步骤走就行另一类是像我一样已经在Mac上装过Python但环境一团乱麻的老鸟看完你可以彻底清理干净重来一遍。1.2 先搞清楚你的Mac是什么芯片再决定下载哪个包这是Mac安装Anaconda时最容易翻车的点而且很多人根本不知道自己踩了坑。2020年以后Mac分成了Intel芯片和Apple SiliconM1/M2/M3芯片两条线。Anaconda官方下载页同时提供两个安装包一个标着x86_64一个标着arm64如果你在M系列芯片的Mac上装了x86_64版本虽然能用但每次运行Python都会走一层Rosetta转译性能打折扣不说某些底层依赖还会莫名报错。我自己当初就干过这事新买的M1 MacBook Pro稀里糊涂装了个x86_64包跑PyTorch时提示“incompatible architecture”查了半天才发现是包版本选错了。怎么确认你的芯片点击屏幕左上角苹果图标选“关于本机”看“芯片”那一行——写着“Apple M1”或类似就是ARM架构写着“Intel”就选x86_64版本。另外MacOS系统版本建议保持在Catalina10.15以上新版Anaconda对老系统的兼容性越来越不友好我见过不少在Mojave上装Anaconda死活装不上的案例。安装前还需要做一件事检查磁盘剩余空间。Anaconda完整安装后大概占用2.5GB到3GB如果你机器只剩几GB空间建议先用CleanMyMac或者自带的存储管理工具清理一下否则安装过程中很容易卡在解包阶段。2. 完整安装步骤图形界面和命令行两种方式2.1 图形界面安装最稳妥的傻瓜式操作第一种方式是直接下载安装包双击安装整个过程和装普通Mac软件没太大区别。先打开Anaconda官网的下载页面不用注册账号直接点“Download”按钮网页会自动根据你的Mac芯片推荐对应版本如果没自动识别就手动选。下载完是一个.pkg文件双击打开系统会提示“此软件来自互联网是否确定要打开”点“打开”。安装向导第一步会让你选择安装位置默认是当前用户的home目录下比如/Users/你的用户名/anaconda3。我不建议改路径因为后续很多工具会默认去这个路径找conda改到别处容易出幺蛾子。接下来就是一路点“继续”直到出现一个“使用Xcode的命令行工具”或者“在PATH中添加Anaconda”的选项。这个步骤是Mac版特有的一定要看清楚勾选“Add Anaconda3 to my PATH environment variable”这样安装完以后直接在终端敲conda就能用省得自己再配环境变量。点击“安装”后等进度条走完大概需要三到五分钟取决于机器速度和硬盘读写性能。装完之后建议重启一下终端而不是开新窗口确保PATH设置生效。然后终端里输入conda --version如果能看到类似conda 24.x.x的输出说明安装成功了。这里有个细节很多人安装过程中会弹窗要求输入电脑密码这是正常的因为安装程序需要写入系统目录权限。不要慌输入你的Mac登录密码就行这不会给第三方软件授予什么额外权限只是macOS的常规安全校验。2.2 命令行安装适合喜欢用Homebrew的玩家如果你平时习惯用Homebrew管理软件也可以用命令行方式安装Anaconda。但我要提前吐槽一句Homebrew官方默认源里其实有anaconda这个包直接用brew install --cask anaconda就能装但这个版本默认不把conda加到PATH环境变量装完之后还得自己手动配置反而更麻烦。而且Homebrew源在国内下载速度时好时坏如果不挂加速镜像经常卡在下载那一步。我个人更推荐直接用官方提供的shell脚本安装。打开终端先下载脚本curl -O https://repo.anaconda.com/archive/Anaconda3-2024.10-1-MacOSX-arm64.sh注意文件名里最后的arm64要换成你的芯片架构Intel芯片换成x86_64。下载完成后执行bash Anaconda3-2024.10-1-MacOSX-arm64.sh脚本会先显示一段许可协议按回车翻页最后问你是否接受协议输入yes。接着会询问安装路径直接回车使用默认路径就行。等脚本跑完后会提示“Do you wish the installer to initialize Anaconda3 by running conda init?”这里一定要输yes它会把conda的初始化代码写进你的~/.zshrc新版Mac默认shell是zsh这样以后每次打开终端就能直接用conda命令。安装完同样重启终端执行conda --version验证。如果提示command not found多半是conda init没执行成功可以手动跑一下source ~/.zshrc如果还不行就检查~/.zshrc文件末尾有没有conda相关的配置段没有的话手动运行/Users/你的用户名/anaconda3/bin/conda init重新初始化。2.3 安装后的必要验证确认环境没被污染装完Anaconda先别急着装其他包花两分钟做一次基础验证。第一步在终端输入which python这时应该指向/Users/你的用户名/anaconda3/bin/python而不是/usr/bin/python。如果指向的还是系统自带的Python说明PATH配置有问题需要检查。第二步输入python --version确认Python版本是3.xAnaconda自带的是3.10以上版本而不是老掉牙的2.7。第三步运行conda list你会看到一大串包名和版本号这说明conda能正常读取环境信息了。一个特别容易让人困惑的点是安装完Anaconda之后终端提示符前面会出现一个(base)字样很多人以为这是系统哪里出问题了。其实这是正常的它表示你当前正处于Anaconda默认的base虚拟环境里。如果你不想要这个前缀可以执行conda config --set auto_activate_base false这样每次开终端就不会自动进入base环境。不过我个人建议先保留着因为能明确知道你是在conda环境下操作避免稀里糊涂装错包。3. 安装后的必备配置镜像源、虚拟环境与编辑器集成3.1 给conda配清华镜像源下载速度翻倍装完Anaconda第一件事我建议立刻配镜像源。默认的conda源在国外国内网络环境下下载包慢得能让人睡着。清华大学的开源软件镜像站是个不错的选择配置方法很简单把.condarc文件位于用户根目录下改一下配置。如果你还没有这个文件在终端执行conda config --set show_channel_urls yes这会生成配置文件然后用编辑器打开~/.condarc写入channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud保存后执行conda clean -i清空索引缓存再运行conda update --all验证一下速度。实测下来从默认源切换到清华源下载速度能提升几十倍尤其是安装PyTorch这类上百MB的包时体感特别明显。这里要提醒一句镜像源只对conda安装包有效对pip是没用的。如果你平时用pip装包也需要单独给pip配置镜像比如用清华PyPI源。方法是在终端执行pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple很多人在conda里装了pip但pip还是走默认源结果下个包又慢又容易超时这就是没配置到位。3.2 虚拟环境实操一个项目一套环境再也不怕版本冲突Anaconda最大的杀器就是虚拟环境。我用一个真实例子说明它的价值你手头有个老项目用的Python 3.7和TensorFlow 1.x新项目要用Python 3.10和PyTorch 2.x。如果不隔离环境两个项目的依赖会互相打架装了新版库旧项目直接跑不起来。用conda虚拟环境就是给每个项目开一个独立的“小房间”互不干扰。创建环境的方式很简单conda create -n pytorch_env python3.10这条命令会创建一个名为pytorch_env的虚拟环境并指定Python版本为3.10。等它下载完基础包激活环境conda activate pytorch_env激活后终端提示符前面的(base)会变成(pytorch_env)这时候你再执行pip install或conda install装的包都在这个环境里不会影响外面的base环境。用完以后退出环境conda deactivate如果某个环境彻底不想要了删除它conda remove -n pytorch_env --all我的经验是每个项目尽量单独建一个环境哪怕只是写个小脚本也别偷懒用base。刚开始你可能觉得麻烦但几个月后项目多了你会发现这个习惯救了你无数次。3.3 与PyCharm/VSCode集成让编辑器认准conda解释器Anaconda装好只是第一步真正干活还得靠编辑器。如果你用PyCharm在设置里选择“Python Interpreter”点“Add Interpreter”——“Add Local Interpreter”——“Conda Environment”PyCharm会自动检测到已安装的conda你只需要在下拉框里选择对应环境就行。这样你在PyCharm里运行代码时用的就是conda环境里的解释器和依赖库不会出现编辑器里跑着系统Python然后各种报ModuleNotFoundError的尴尬事。如果你和我一样平时用VSCode也是类似操作。需要先装好Python扩展和Pylance扩展然后按CmdShiftP打开命令面板输入“Python: Select Interpreter”选择你刚创建的conda环境。VSCode左下角会显示当前的解释器路径确认是/Users/你的用户名/anaconda3/envs/对应环境/bin/python就没问题。这里有个经常被忽略的点在终端里用conda activate激活了环境不代表VSCode或PyCharm里也会自动切换到相同环境。编辑器有自己独立的解释器配置需要手动选一次。我见过不少同事在终端里装好包结果VSCode里import还是报错就是在这一步没配对。4. 常见问题与排查技巧实录4.1 问题速查表快进快出直接对应解决问题现象可能原因解决方案终端输入conda提示command not foundconda未加入PATH环境变量检查~/.zshrc中是否有conda init段没有则执行/Users/用户名/anaconda3/bin/conda init安装包时提示“Solving environment”卡住conda依赖解析慢网络或源问题更换为清华镜像源或使用mamba加速解析见下文which python仍指向/usr/bin/pythonPATH顺序不对系统目录优先级更高在~/.zshrc中确保export PATH/Users/用户名/anaconda3/bin:$PATH这一行在最后安装时提示“You do not have sufficient privileges”安装包无法写入目标目录检查安装路径是否包含中文或空格尽量使用默认路径确保当前用户对目标目录有写权限M1 Mac运行Python时报“illegal hardware instruction”安装了x86_64版本遇到原生ARM冲突卸载重装arm64版本或者使用conda install -c conda-forge重新安装依赖conda update太慢或超时默认源网络不稳定切换清华源后执行conda clean -i清理缓存4.2 独家避坑技巧这些坑你大概率会遇到第一个坑是关于Homebrew和Anaconda同时存在的PATH冲突。很多Mac用户先装了Homebrew再装Anaconda时终端里输出的python可能还是Homebrew的版本。这时候你需要在~/.zshrc里把Anaconda的路径放在Homebrew路径之前让conda优先接管Python解释器export PATH/opt/homebrew/bin:$PATH # Homebrew路径放在前 export PATH/Users/你的用户名/anaconda3/bin:$PATH # Anaconda路径放在更前修改完保存执行source ~/.zshrc。别小看这个顺序我有一次就是反着写结果conda运行时调用了Homebrew的Python各种诡异报错。第二个坑是关于conda install和pip install混用的问题。很多人在conda环境里图省事用pip装包结果某些包尤其是涉及原生编译的包pip版本和conda版本不一致也会导致隐性冲突。我的建议是先优先使用conda install如果conda源里没有这个包再退而求其次用pip install。而且每次用pip装完包后最好执行conda list看一眼环境里有没有重复安装同一个包。第三个坑是MacOS从Catalina开始启用了应用签名校验有时遇到“无法打开因为Apple无法检查其是否包含恶意软件”的提示。这不是Anaconda安装包坏了而是macOS对新下载应用的验证机制。解决办法是右键点击安装包选择“打开”然后选择“仍然打开”绕过验证。4.3 安装后系统异常恢复怎么干净卸载Anaconda如果你之前装了旧版Anaconda或者装到一半想重来卸载干净是很重要的一步。Anaconda自带的卸载程序在安装目录下rm -rf ~/anaconda3然后清理配置文件命令是rm -rf ~/.conda rm -rf ~/.condarc最后还要手动编辑~/.zshrc把conda初始化相关的那几行删掉否则每次打开终端都会提示“command not found: conda”。至于系统里如果还有其他Python残留建议用which -a python查看所有Python路径一个一个确认哪些是系统自带的、哪些是第三方装的避免误删。我见过最惨烈的案例是一个朋友卸载Anaconda时顺手把系统Python也删了结果macOS自带的很多系统管理脚本全挂了最后还是重装系统才解决。所以千万别碰/usr/bin/python和/usr/bin/python3那是系统核心依赖删了哭都来不及。5. 实际使用体验与工作流优化5.1 用conda管理多版本Python的真实案例我最开始接触conda是工作需要公司有个老项目还在用Python 3.7新项目已经切到3.10了电脑上还装了系统默认的Python 3.9。那会儿我还没意识到虚拟环境的重要性直接在全局环境里来回切换漏装版本每天都发生。后来老老实实搭了三个conda环境py37、py39、py310每个环境下都装好项目各自依赖的库。转项目时只需要conda activate py37终端和编辑器一起切过去再也不用担心装错版本导致项目跑不起来。说句实话如果你在Mac上经常需要来回切版本写代码conda虚拟环境不是可选项是必修课。创建多版本环境时一定要指定Python版本号conda create -n py37 python3.7 conda create -n py310 python3.105.2 推荐的日常conda命令组合我来分享几个高频使用的命令组合按频率高低排。查当前环境列表conda env list导出当前环境的包列表方便换电脑或同事复现环境conda env export environment.yaml从yaml文件重建环境conda env create -f environment.yaml给已有环境安装指定版本的包conda install -n py310 numpy1.26 pandas定期更新conda本身conda update conda我自己的习惯是每建一个新环境第一件事就是装ipykernel因为这样在Jupyter Notebook里才能选到这个环境的内核。不然你在终端里建好环境打开Jupyter还是只有一个Python 3内核很恼火。装法conda activate 新环境名 conda install ipykernel python -m ipykernel install --user --name 新环境名5.3 结合Mac上的其他常用工具链使用在Mac上装Anaconda不光是给Python用的还经常和Homebrew、Git、Docker这些工具链配合起来。比如我处理数据时经常需要调用PostgreSQL数据库直接brew install postgresql装好然后用conda环境里的psycopg2连数据库两个生态互相配合没有任何冲突。另外一个实际场景是用Mac做机器学习开发时经常需要用到GPU加速。虽然Mac没有NVIDIA显卡但M系列芯片有自带的Metal框架Anaconda里可以通过安装tensorflow-metal插件让TensorFlow跑在GPU上。安装代码conda activate tensorflow_env pip install tensorflow tensorflow-metal这里要特别提一句TensorFlow的M系列芯片支持是苹果官方和TensorFlow团队合作做的性能还不错可以用起来。不过要注意版本匹配最好在Anaconda里新建一个干净环境再装避免和其他版本的TensorFlow冲突。6. 一些真实感受和小建议用Anaconda这几年我从单纯把它当“Python安装器”到逐渐体会到它在环境管理上的优势确实经历了一个过程。如果说有什么最想分享的就是不要在环境搭建阶段贪快。我见过太多新同学拿到Mac第一件事就是跑两行命令把Python装完然后闷头写代码直到某天需要装个新库才发现各种冲突。在Mac上安装Anaconda本质上就是给未来几年的开发过程上一道保险。弄好镜像源、建好虚拟环境、配好编辑器这三个步骤熟练了后面开发和出行都会顺畅很多。我自己现在每次换新Mac除了系统初始化第一件事就是按这篇的流程装Anaconda大概十五分钟就能回到熟悉的开发状态。还有一个小技巧分享一下Mac上可以用conda init zsh让conda真正嵌入到zsh shell中这样每次打开终端时就能自动加载conda命令。如果你平时用的是bash而不是zsh就改成conda init bash。另外建议定期运行conda update --all保持基础依赖更新但要注意大版本升级前先备份环境yaml文件不然升级失败后又得重新折腾。