1166 字
约 3 分钟
7
S10-B02 · Conda 安装与换源:三平台 + 国内镜像

适用读者:装完 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

  1. 下载 Miniconda3 Windows 64-bit 安装包。
  2. 安装时勾选项:
    • Just Me(个人)或 All Users(需管理员)
    • Add Miniconda3 to my PATH environment variable:官方默认不推荐勾(避免与其他 Python 冲突),改由"开始菜单 → Anaconda Prompt"进入。
  3. 装完用 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. 自检

  1. 装了 conda 但 conda --version 报 command not found,第一步查什么?
  2. conda init 具体改了什么文件?
  3. 临时让当前 shell 生效,用哪条命令?
  4. .condarc 的优先级顺序是什么?
  5. conda 换源会顺带加速 pip 吗?为什么?

7. 下一篇

S10-B03 · 虚拟环境全生命周期:创建/激活/删除/导出

装好之后,下一篇把"环境的完整生命周期"跑一遍:创建、激活、装包、导出、在另一台机器重建、删除——并给出"导出→重建→跑通"的可复现命令序列(附 venv 实测)。


本篇属于系列《S10 · Python 语言与环境》。旧文来源:A-1410–A-1414;扩展点 E-S10-002/003。PATH 检查为 2026-11-05 实测;Conda 命令为官方文档口径。

S10-B02 · Conda 安装与换源:三平台 + 国内镜像
https://www.clxhxhhr.top/posts/5317/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。