macOS 使用 Conda 管理 Python:环境整理与日常使用手册
适用设备:Apple Silicon Mac(当前设备为 Apple M4)
Shell:Zsh
Conda 安装目录:/opt/anaconda3
环境快照日期:2026-08-19
这篇文档用于记录我电脑上的 Python 环境,以及以后使用 Conda 创建、切换、维护和删除 Python 环境的方法。忘记命令时,直接查阅本文即可。
一、当前电脑上的 Python 环境
目前可以确认存在以下 Python:
| 来源 | 环境名 | Python 版本 | 路径 | 当前状态 |
|---|---|---|---|---|
| Homebrew | 无 | 3.10.20 | /opt/homebrew/opt/python@3.10/bin/python3.10 | 当前默认命令仍指向这里 |
| Conda | base | 3.13.9 | /opt/anaconda3/bin/python | 未激活 |
| Conda | 3.10 | 3.10.20 | /opt/anaconda3/envs/3.10/bin/python | 未激活 |
| macOS | 系统环境 | 需单独查询 | /usr/bin/python3 | 系统自带,不修改 |
当前 Conda 版本是 25.11.1,使用默认的 libmamba 求解器,运行平台为 osx-arm64。
当前配置:
auto_activate: false
channels:
- defaultsauto_activate: false 表示打开新终端时不会自动进入 base。这是推荐设置:Conda 可以正常使用,但不会接管每一个终端会话。
当前需要注意的问题
~/.zshrc 中目前还有这一行:
export PATH="/opt/homebrew/opt/python@3.10/libexec/bin:$PATH"它把 Homebrew Python 放在 PATH 最前面。因此,在没有激活 Conda 环境时:
python --version
python3 --version当前都会优先得到 Homebrew 的 Python 3.10.20。
如果已经按照后文删除这行配置,那么未激活 Conda 时,python 可能不存在,python3 可能指向 /usr/bin/python3。这是正常现象;需要运行项目时,先激活对应的 Conda 环境。
二、最终采用的管理原则
以后按照下面的规则管理 Python:
- Conda 负责安装 Python 版本和隔离项目环境。
- 不在
base环境中开发项目或安装项目依赖。 - 一个项目尽量对应一个 Conda 环境。
- 进入项目前先执行
conda activate 环境名。 - 安装 pip 包时使用
python -m pip,避免 pip 指错 Python。 - 不修改、不删除
/usr/bin/python3,它属于 macOS。 - Homebrew Python 不再作为项目 Python;确认无依赖后可卸载。
base 环境主要用于运行和维护 Conda 本身。项目环境损坏时,可以删除并重建,而不会影响 Conda。
三、Conda 最常用命令
1. 查看 Conda 信息
conda --version
conda info查看 Conda 安装位置:
conda info --base当前应该输出:
/opt/anaconda32. 查看所有环境
conda env list或者:
conda info --envs标有 * 的环境是当前激活环境。没有 * 时,表示没有激活任何 Conda 环境。
3. 查看当前环境
echo "$CONDA_DEFAULT_ENV"也可以查看 Python 的实际位置:
which python
python --version4. 激活环境
激活现有的 Python 3.10 环境:
conda activate 3.10激活后检查:
echo "$CONDA_DEFAULT_ENV"
which python
python --version
python -m pip --version预期 Python 路径是:
/opt/anaconda3/envs/3.10/bin/python5. 退出环境
conda deactivate如果嵌套激活过多个环境,可以多执行几次,直到终端前面不再显示环境名。
四、创建新的 Python 环境
按 Python 版本创建
conda create -n py312 python=3.12 pip参数含义:
-n py312:环境名为py312;python=3.12:安装 Python 3.12;pip:同时安装 pip。
创建后激活:
conda activate py312按项目创建(更推荐)
假设项目叫 my-agent:
conda create -n my-agent python=3.12 pip
conda activate my-agent环境名直接使用项目名,更容易知道它属于哪个项目。
创建时不需要指定 Python 的完整小版本
通常写:
python=3.12Conda 会选择仓库中兼容的最新 3.12.x 版本。只有项目明确要求时,才锁定完整版本:
conda create -n legacy-project python=3.10.20 pip五、安装和管理项目依赖
优先使用 Conda 安装
激活项目环境后:
conda install requests指定安装某个版本:
conda install requests=2.32Conda 中没有时再使用 pip
python -m pip install 包名例如:
python -m pip install fastapi uvicorn不要优先写:
pip install 包名python -m pip 能明确保证 pip 属于当前 python。
查看已安装的包
查看当前环境:
conda list不激活环境,直接查看指定环境:
conda list -n 3.10
conda list -n base查看 pip 安装的包:
python -m pip list更新包
使用 Conda 安装的包:
conda update 包名使用 pip 安装的包:
python -m pip install --upgrade 包名不建议无目的执行 conda update --all,因为它可能一次改变大量依赖版本。
卸载包
conda remove 包名或者:
python -m pip uninstall 包名谁安装的就优先用谁卸载。
六、项目的标准使用流程
每天开始开发:
cd 项目目录
conda activate 项目环境名
python --version安装依赖:
python -m pip install -r requirements.txt运行项目:
python main.py开发结束:
conda deactivate在 VS Code 中,还需要执行:
- 打开命令面板;
- 搜索
Python: Select Interpreter; - 选择
/opt/anaconda3/envs/环境名/bin/python。
终端激活环境与 VS Code 选择解释器是两件事,两边都要确认。
七、导出、复制和恢复环境
导出适合跨电脑恢复的环境文件
先激活环境:
conda activate my-agent
conda env export --from-history > environment.yml--from-history 只记录主动安装的主要依赖,通常比导出全部底层依赖更容易跨平台恢复。
恢复环境:
conda env create -f environment.yml更新已有环境:
conda env update -n my-agent -f environment.yml --prune精确复制本机环境
conda create -n my-agent-copy --clone my-agent克隆适合在同一台电脑快速备份,但不适合作为跨平台项目配置。
八、重命名和删除环境
重命名环境
当前已有环境名 3.10。如果以后希望名称更统一,可以改成 py310:
conda deactivate
conda rename -n 3.10 py310重命名前先确认没有终端正在使用该环境。
删除环境
先退出环境:
conda deactivate然后删除:
conda remove -n 环境名 --all例如:
conda remove -n my-agent --all删除前务必执行 conda env list,核对环境名和路径。不要删除 base。
九、让 Conda 成为唯一的项目 Python 管理方式
1. 备份 Zsh 配置
cp ~/.zshrc ~/.zshrc.backup-before-conda-cleanup2. 删除 Homebrew Python 的强制 PATH
从 ~/.zshrc 删除:
export PATH="/opt/homebrew/opt/python@3.10/libexec/bin:$PATH"可以执行:
sed -i '' '\|/opt/homebrew/opt/python@3.10/libexec/bin|d' ~/.zshrc重新启动登录 Shell:
exec zsh -l3. 保留 Conda 初始化代码
~/.zshrc 中下面这一段由 conda init 管理,不要手动删除内部内容:
# >>> conda initialize >>>
...
# <<< conda initialize <<<检查初始化是否正常:
type conda
conda info --base4. 保持 base 不自动激活
conda config --set auto_activate_base false不同 Conda 版本显示的配置键可能是 auto_activate,效果相同。当前电脑已经是关闭状态,不需要重复修改。
5. 卸载 Homebrew Python(可选)
当前执行以下命令没有输出,表示没有已安装的 Homebrew formula 直接依赖 python@3.10:
brew uses --installed python@3.10完成 PATH 清理并验证 Conda 环境正常后,可以卸载:
brew uninstall python@3.10不要手动删除 macOS 的 /usr/bin/python3,也不要直接删除 /opt/anaconda3。
十、快速诊断:Python 到底来自哪里
遇到版本不对、包装错位置或命令找不到时,先运行:
echo "当前 Conda 环境:$CONDA_DEFAULT_ENV"
type -a python python3 pip pip3 conda
which python
python --version
python -c 'import sys; print(sys.executable); print(sys.prefix)'
python -m pip --version激活 Conda 环境后,正确结果应该满足:
CONDA_DEFAULT_ENV是预期的环境名;sys.executable位于/opt/anaconda3/envs/环境名/bin/python;- pip 路径同样位于该环境目录;
- Python 和 pip 显示的 Python 版本一致。
修改配置后命令仍指向旧位置
先启动新 Shell:
exec zsh -l仍然不正确时清除 Zsh 命令缓存:
rehash然后重新执行 type -a python python3。
conda activate 无法使用
重新初始化 Zsh:
/opt/anaconda3/bin/conda init zsh
exec zsh -lpip 安装到了错误环境
不要继续安装,先检查:
which python
python -m pip --version确认路径后再运行:
python -m pip install 包名十一、常用命令速查表
| 目的 | 命令 |
|---|---|
| 查看 Conda 版本 | conda --version |
| 查看所有环境 | conda env list |
| 查看当前环境 | echo "$CONDA_DEFAULT_ENV" |
| 创建环境 | conda create -n 项目名 python=3.12 pip |
| 激活环境 | conda activate 项目名 |
| 退出环境 | conda deactivate |
| 查看 Python 来源 | python -c 'import sys; print(sys.executable)' |
| 查看 Python 版本 | python --version |
| 查看当前环境的包 | conda list |
| 安装 Conda 包 | conda install 包名 |
| 安装 pip 包 | python -m pip install 包名 |
| 导出主要依赖 | conda env export --from-history > environment.yml |
| 从文件创建环境 | conda env create -f environment.yml |
| 克隆环境 | conda create -n 新环境 --clone 旧环境 |
| 删除环境 | conda remove -n 环境名 --all |
十二、我自己的日常模板
创建项目环境:
conda create -n 项目名 python=3.12 pip
conda activate 项目名进入已有项目:
cd 项目目录
conda activate 项目名
python --version安装依赖:
python -m pip install -r requirements.txt保存环境配置:
conda env export --from-history > environment.yml结束工作:
conda deactivate最重要的一条:使用 Python 项目前先激活对应的 Conda 环境,再运行 Python 或安装依赖。