适用读者:装完 conda 却"命令找不到",或
conda install卡在下载的人。
前置:S10-B01。
实测环境:本机无 Conda(Linux 部分命令为官方文档口径);PATH/conda init的机制用 bash 实测验证。
覆盖旧文:A-1410(47) A-1411(40) A-1412(22) A-1413(52) A-1414(31) = 192 点。
覆盖扩展:E-S10-002(conda init与 shell 配置)、E-S10-003(.condarc优先级)。
上一篇:S10-B01 · Conda 是什么:包管理器与虚拟环境
下一篇:S10-B03 · 虚拟环境全生命周期。
1. 一句话结论
"装完 conda 命令找不到"只有一个原因:conda 的可执行目录不在当前 shell 的 PATH 里——而 conda init 就是把它写进 shell 启动脚本的那一步。
装 → 装完不生效 → conda init → 重开 shell → 生效
2. 三平台安装
2.1 Windows
- 下载 Miniconda3 Windows 64-bit 安装包。
- 安装时勾选项:
Just Me(个人)或All Users(需管理员)Add Miniconda3 to my PATH environment variable:官方默认不推荐勾(避免与其他 Python 冲突),改由"开始菜单 → Anaconda Prompt"进入。
- 装完用 Anaconda Prompt(它已预置 PATH)验证:
conda --version
conda info
2.2 Linux
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
# 让当前 shell 生效(等价于 conda init 的效果)
eval "$($HOME/miniconda3/bin/conda shell.bash hook)"
$HOME/miniconda3/bin/conda init bash
2.3 macOS
brew install --cask miniconda # 或下载 .pkg 安装
# Apple Silicon 默认装到 /opt/homebrew/Caskroom/miniconda
conda init zsh # macOS 默认 shell 是 zsh
2.4 为什么必须 conda init(E-S10-002)
conda init 做的事情就是往 shell 启动脚本里写一段 hook:
# ~/.bashrc 里会多出类似这样的块(由 conda init 生成)
# >>> conda initialize >>>
__conda_setup="$('/home/user/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then eval "$__conda_setup"; fi
# <<< conda initialize <<<
验证方式(任何 shell 都适用,实测):
$ echo $PATH | tr ':' '\n' | grep -i conda || echo "PATH 里没有 conda"
PATH 里没有 conda
这就是"命令找不到"的直接证据。三种修法:
| 修法 | 适用 |
|---|---|
conda init 后重开终端 |
长期解 |
当前会话 eval "$(conda shell.bash hook)" |
临时解 |
手动把 .../miniconda3/bin 加进 PATH |
不推荐(会与系统 Python 抢) |
3. 换源:为什么、怎么配
3.1 为什么需要(E-S10-003)
defaults 频道在境外,国内直连常慢/超时。换成镜像后速度显著提升(具体倍数未实测,正文不写数字)。
3.2 .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
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
验证:
conda config --show-sources # 看当前生效的所有配置来源
conda config --show channels
优先级规则:
| 层级 | 位置 | 优先级 |
|---|---|---|
命令行 --channel |
本次命令 | 最高 |
项目 .condarc |
当前目录 | 次高 |
用户 ~/.condarc |
home | 中 |
系统 .condarc |
安装目录 | 最低 |
坑:show_channel_urls: true 建议打开——否则你看不出包到底从哪个源来的。
4. pip 也要换源(两套是分开的)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config list
| 工具 | 配置文件 | 别混淆 |
|---|---|---|
| conda | ~/.condarc |
管 conda 包 |
| pip | ~/.config/pip/pip.conf(Linux/macOS)、%APPDATA%\pip\pip.ini(Win) |
管 PyPI 包 |
常见故障:以为换了 conda 源 pip 就快了——两套独立。
5. 五个误区
| 误区 | 真相 |
|---|---|
| "装完就能用" | 需要 conda init + 重开 shell |
| "把 conda 加进系统 PATH 最省事" | 会与系统 Python 抢,导致其他工具异常 |
| "换了 conda 源 pip 也快了" | 两套源互不影响 |
".condarc 只有一种" |
用户级/项目级/系统级三层,优先级不同 |
| "装 Anaconda 最全" | 数 GB 冗余;Miniconda + 按需装更干净 |
6. 自检
- 装了 conda 但
conda --version报 command not found,第一步查什么? conda init具体改了什么文件?- 临时让当前 shell 生效,用哪条命令?
.condarc的优先级顺序是什么?- conda 换源会顺带加速 pip 吗?为什么?
7. 下一篇
S10-B03 · 虚拟环境全生命周期:创建/激活/删除/导出
装好之后,下一篇把"环境的完整生命周期"跑一遍:创建、激活、装包、导出、在另一台机器重建、删除——并给出"导出→重建→跑通"的可复现命令序列(附 venv 实测)。
本篇属于系列《S10 · Python 语言与环境》。旧文来源:A-1410–A-1414;扩展点 E-S10-002/003。PATH 检查为 2026-11-05 实测;Conda 命令为官方文档口径。