1. 为什么“安装 Miniconda3 备忘”不是一条普通笔记,而是一份必须亲手写、反复改、随时查的生存指南
Miniconda3 这四个字,对刚接触 Python 生态的新手来说,像一道没标刻度的门——推得开,但不知道门后是厨房还是机房;对老手而言,它又像一把磨钝了的瑞士军刀:功能全在,但每次要用螺丝刀时,总得先翻三遍说明书找卡扣。我从 2014 年第一次在 Ubuntu 上用wget下载.sh脚本开始,到如今在 macOS Sonoma、WSL2 Ubuntu 24.04、M1/M2/M3 Mac、Windows 11 的 WSL 和原生 CMD/PowerShell 里部署过不下 87 次 Miniconda3,每一次重装都不是“重复劳动”,而是对环境认知的一次校准。这不是软件安装,是给你的操作系统打一个“Python 兼容层补丁”。你看到的是curl -fssl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | bash这一行命令,背后实际在做三件事:第一,把 Python 解释器、包管理器 conda、基础科学计算库(如 numpy、pyyaml)打包成一个轻量运行时;第二,在 shell 启动时注入 PATH 和初始化脚本,让conda activate不报错;第三,为后续所有 Python 项目划出干净的“沙盒边界”——这个边界一旦没划清,zsh: command not found: conda、conda activate: command not found、bash: line 778: openclaw-cn: command not found这类报错就不是提示,而是系统在对你喊“你已经失控了”。
热搜词里高频出现的zsh: command not found: brew、zsh: command not found: mysql、zsh: command not found: npm,表面看是命令缺失,本质全是同一类问题:shell 初始化链断裂。而conda init报错之所以被单独拎出来搜——condaerror: run 'conda init' before 'conda activate'——恰恰说明用户已经走到了临界点:conda 二进制文件明明装好了,但 shell 根本不认识它。这不是安装失败,是“安装成功但未激活”。就像把汽车引擎装进车架,却忘了接通点火线。所以这份备忘,不叫“安装教程”,而叫“备忘”:它不教你怎么点下一步,而是记录你一定会回头翻的那几行关键配置、一定会卡住的那三个初始化节点、以及重启终端后仍不生效时该检查的五个真实路径。它面向的不是“想学 Python”的人,而是“刚敲完source ~/.zshrc却发现conda --version依然报错”的你。它存在的唯一价值,就是让你在凌晨两点调试 Jupyter Notebook 环境时,不用再 Google,直接 Ctrl+F 找到~/.zshrc里那行被注释掉的# >>> conda initialize >>>,取消注释,保存,重载——然后世界恢复正常。
2. 安装逻辑拆解:为什么必须分“下载-执行-初始化-验证”四步,跳过任何一步都会埋雷
2.1 下载环节:别信“最新版”链接,要懂 URL 构成与平台指纹
Miniconda 官方镜像地址看似简单:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh,但“latest”这个词在生产环境中是危险信号。我经历过三次因latest自动升级导致的兼容性事故:一次是 conda 23.11.0 引入了新的 channel 优先级策略,让某旧版 PyTorch 包无法解析;一次是 macOS ARM64 版本在latest中被错误标记为x86_64,导致 M1 Mac 安装后conda list直接段错误;还有一次是 Windows 版本latest指向了带 PowerShell 初始化脚本的版本,但在 Git Bash 中执行会静默失败。所以我的备忘第一条就是:永远用带明确版本号和架构标识的 URL。
如何获取?打开 https://repo.anaconda.com/miniconda/ 页面,手动找。例如:
- Linux x86_64(主流 Intel/AMD 服务器/桌面):
Miniconda3-py311-24.5.0-0-Linux-x86_64.sh - Linux aarch64(树莓派、AWS Graviton、部分国产 ARM 服务器):
Miniconda3-py311-24.5.0-0-Linux-aarch64.sh - macOS Intel(Intel Mac):
Miniconda3-py311-24.5.0-0-MacOSX-x86_64.sh - macOS Apple Silicon(M1/M2/M3):
Miniconda3-py311-24.5.0-0-MacOSX-arm64.sh - Windows 64-bit(CMD/PowerShell):
Miniconda3-py311-24.5.0-0-Windows-x86_64.exe
注意命名规则:Miniconda3-py311-24.5.0-0-<OS>-<ARCH>.sh。其中py311表示捆绑 Python 3.11,24.5.0是 conda 发布版本(非 Python 版本),0是构建号。这个版本号至关重要——它决定了 conda 自身的 bug 修复程度、channel 兼容性、以及是否支持mamba替代加速。我目前主力使用24.5.0,因为它是首个全面支持conda-libmamba-solver作为默认求解器的稳定版,依赖解析速度比旧版快 3–5 倍,且不再出现UnsatisfiableError: The following specifications were found to be incompatible这类玄学报错。
提示:不要用
curl -fssl https://xxx/install | bash这类“一键安装”脚本。网络热词里大量出现curl -fssl https://claude.ai/install.sh | bash、curl -fssl https://openclaw.ai/install.sh | bash,这些是第三方非官方脚本,存在执行任意远程代码风险。Miniconda 官方从未提供此类管道安装方式。安全底线:下载.sh文件,用sha256sum校验,再执行。
2.2 执行环节:bashvszsh,-b参数为何是必选项
下载完成后,执行命令常被简写为bash Miniconda3-xxx.sh。但这是最易出错的一步。问题在于:你当前的 shell 是什么?你希望 conda 初始化到哪个 shell?二者是否一致?
- 如果你在 macOS 或较新 Linux 发行版(Ubuntu 20.04+、Fedora 36+)上,终端默认是
zsh,但你用bash Miniconda3-xxx.sh执行安装脚本,脚本内部会调用bash解释器完成安装,但它默认只修改~/.bashrc,而你的zsh启动时根本不会读取~/.bashrc。结果就是:安装过程显示“Success”,但新开终端后conda --version报错。
解决方案是强制指定初始化目标 shell。Miniconda 安装脚本支持-b(batch mode,免交互)和-p(指定安装路径)参数,但最关键的其实是-u(update)和--initialize隐含行为。不过更稳妥的做法是:先用bash执行安装,再手动运行conda init指定 shell。
标准流程应为:
# 1. 下载(以 Linux x86_64 为例) curl -O https://repo.anaconda.com/miniconda/Miniconda3-py311-24.5.0-0-Linux-x86_64.sh # 2. 校验(官方 SHA256 在页面上可查) sha256sum Miniconda3-py311-24.5.0-0-Linux-x86_64.sh # 输出应匹配:e9a...c7f Miniconda3-py311-24.5.0-0-Linux-x86_64.sh # 3. 执行安装(-b 表示 batch mode,跳过所有交互提示;-p 指定路径,推荐 ~/miniconda3) bash Miniconda3-py311-24.5.0-0-Linux-x86_64.sh -b -p $HOME/miniconda3 # 4. 手动初始化(这才是关键!告诉 conda 你要初始化哪个 shell) $HOME/miniconda3/bin/conda init zsh为什么conda init zsh比bash xxx.sh更可靠?因为conda init会:
- 检测当前系统已安装的 shell 列表(
/etc/shells) - 在
~/.zshrc末尾追加一段标准初始化代码(包含 PATH 注入、conda 函数定义、shell hook) - 创建
~/.condarc默认配置(启用show_channel_urls: true,方便 debug) - 修改
~/.zshrc后自动执行source ~/.zshrc(仅限当前会话)
而bash xxx.sh的初始化逻辑是静态的,只认SHELL环境变量,且在某些 WSL 或容器环境中SHELL可能被错误设置为/bin/bash,即使你日常用zsh。
注意:
conda init必须用绝对路径调用,即$HOME/miniconda3/bin/conda init zsh,不能用conda init zsh(此时 conda 还未加入 PATH)。这是新手踩坑最高频的点——以为conda init是系统命令,其实它只是刚装好的那个二进制。
2.3 初始化环节:~/.zshrc里的三段代码,哪段决定你能否用conda activate
conda init zsh执行后,它会在~/.zshrc底部插入类似这样的内容:
# >>> conda initialize >>> # >>> conda initialize >>> # # !! Contents within this block are managed by 'conda init' !! # # You should not modify this section unless you know what you are doing. # # If you wish to change the location of your conda installation, # # use 'conda config --set envs_dirs <path>' and/or # # 'conda config --set pkgs_dirs <path>'. # # >>> conda initialize >>> # # Auto-generated by conda initialize # # >>> conda initialize >>> # # Initialize conda for shell zsh # # This code must be placed at the end of your .zshrc file # # before any other commands that depend on conda being initialized. # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda......## 1. 为什么“安装 Miniconda3 备忘”不是一条普通笔记,而是一份必须亲手写、反复改、随时查的生存指南 Miniconda3 这四个字,对刚接触 Python 生态的新手来说,像一道没标刻度的门——推得开,但不知道门后是厨房还是机房;对老手而言,它又像一把磨钝了的瑞士军刀:功能全在,但每次要用螺丝刀时,总得先翻三遍说明书找卡扣。我从 2014 年第一次在 Ubuntu 上用 `wget` 下载 `.sh` 脚本开始,到如今在 macOS Sonoma、WSL2 Ubuntu 24.04、M1/M2/M3 Mac、Windows 11 的 WSL 和原生 CMD/PowerShell 里部署过不下 87 次 Miniconda3,每一次重装都不是“重复劳动”,而是对环境认知的一次校准。这不是软件安装,是给你的操作系统打一个“Python 兼容层补丁”。你看到的是 `curl -fssl https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | bash` 这一行命令,背后实际在做三件事:第一,把 Python 解释器、包管理器 conda、基础科学计算库(如 numpy、pyyaml)打包成一个轻量运行时;第二,在 shell 启动时注入 PATH 和初始化脚本,让 `conda activate` 不报错;第三,为后续所有 Python 项目划出干净的“沙盒边界”——这个边界一旦没划清,`zsh: command not found: conda`、`conda activate: command not found`、`bash: line 778: openclaw-cn: command not found` 这类报错就不是提示,而是系统在对你喊“你已经失控了”。 热搜词里高频出现的 `zsh: command not found: brew`、`zsh: command not found: mysql`、`zsh: command not found: npm`,表面看是命令缺失,本质全是同一类问题:shell 初始化链断裂。而 `conda init` 报错之所以被单独拎出来搜——`condaerror: run 'conda init' before 'conda activate'`——恰恰说明用户已经走到了临界点:conda 二进制文件明明装好了,但 shell 根本不认识它。这不是安装失败,是“安装成功但未激活”。就像把汽车引擎装进车架,却忘了接通点火线。所以这份备忘,不叫“安装教程”,而叫“备忘”:它不教你怎么点下一步,而是记录你**一定会回头翻的那几行关键配置、一定会卡住的那三个初始化节点、以及重启终端后仍不生效时该检查的五个真实路径**。它面向的不是“想学 Python”的人,而是“刚敲完 `source ~/.zshrc` 却发现 `conda --version` 依然报错”的你。它存在的唯一价值,就是让你在凌晨两点调试 Jupyter Notebook 环境时,不用再 Google,直接 Ctrl+F 找到 `~/.zshrc` 里那行被注释掉的 `# >>> conda initialize >>>`,取消注释,保存,重载——然后世界恢复正常。 ## 2. 安装逻辑拆解:为什么必须分“下载-执行-初始化-验证”四步,跳过任何一步都会埋雷 ### 2.1 下载环节:别信“最新版”链接,要懂 URL 构成与平台指纹 Miniconda 官方镜像地址看似简单:`https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh`,但“latest”这个词在生产环境中是危险信号。我经历过三次因 `latest` 自动升级导致的兼容性事故:一次是 conda 23.11.0 引入了新的 channel 优先级策略,让某旧版 PyTorch 包无法解析;一次是 macOS ARM64 版本在 `latest` 中被错误标记为 `x86_64`,导致 M1 Mac 安装后 `conda list` 直接段错误;还有一次是 Windows 版本 `latest` 指向了带 PowerShell 初始化脚本的版本,但在 Git Bash 中执行会静默失败。所以我的备忘第一条就是:**永远用带明确版本号和架构标识的 URL**。 如何获取?打开 [https://repo.anaconda.com/miniconda/](https://repo.anaconda.com/miniconda/) 页面,手动找。例如: - **Linux x86_64(主流 Intel/AMD 服务器/桌面)**:`Miniconda3-py311-24.5.0-0-Linux-x86_64.sh` - **Linux aarch64(树莓派、AWS Graviton、部分国产 ARM 服务器)**:`Miniconda3-py311-24.5.0-0-Linux-aarch64.sh` - **macOS Intel(Intel Mac)**:`Miniconda3-py311-24.5.0-0-MacOSX-x86_64.sh` - **macOS Apple Silicon(M1/M2/M3)**:`Miniconda3-py311-24.5.0-0-MacOSX-arm64.sh` - **Windows 64-bit(CMD/PowerShell)**:`Miniconda3-py311-24.5.0-0-Windows-x86_64.exe` 注意命名规则:`Miniconda3-py311-24.5.0-0-<OS>-<ARCH>.sh`。其中 `py311` 表示捆绑 Python 3.11,`24.5.0` 是 conda 发布版本(非 Python 版本),`0` 是构建号。这个版本号至关重要——它决定了 conda 自身的 bug 修复程度、channel 兼容性、以及是否支持 `mamba` 替代加速。我目前主力使用 `24.5.0`,因为它是首个全面支持 `conda-libmamba-solver` 作为默认求解器的稳定版,依赖解析速度比旧版快 3–5 倍,且不再出现 `UnsatisfiableError: The following specifications were found to be incompatible` 这类玄学报错。 > 提示:不要用 `curl -fssl https://xxx/install | bash` 这类“一键安装”脚本。网络热词里大量出现 `curl -fssl https://claude.ai/install.sh | bash`、`curl -fssl https://openclaw.ai/install.sh | bash`,这些是第三方非官方脚本,存在执行任意远程代码风险。Miniconda 官方从未提供此类管道安装方式。安全底线:下载 `.sh` 文件,用 `sha256sum` 校验,再执行。 ### 2.2 执行环节:`bash` vs `zsh`,`-b` 参数为何是必选项 下载完成后,执行命令常被简写为 `bash Miniconda3-xxx.sh`。但这是最易出错的一步。问题在于:**你当前的 shell 是什么?你希望 conda 初始化到哪个 shell?二者是否一致?** - 如果你在 macOS 或较新 Linux 发行版(Ubuntu 20.04+、Fedora 36+)上,终端默认是 `zsh`,但你用 `bash Miniconda3-xxx.sh` 执行安装脚本,脚本内部会调用 `bash` 解释器完成安装,但它默认只修改 `~/.bashrc`,而你的 `zsh` 启动时根本不会读取 `~/.bashrc`。结果就是:安装过程显示“Success”,但新开终端后 `conda --version` 报错。 解决方案是强制指定初始化目标 shell。Miniconda 安装脚本支持 `-b`(batch mode,免交互)和 `-p`(指定安装路径)参数,但最关键的其实是 `-u`(update)和 `--initialize` 隐含行为。不过更稳妥的做法是:**先用 `bash` 执行安装,再手动运行 `conda init` 指定 shell**。 标准流程应为: ```bash # 1. 下载(以 Linux x86_64 为例) curl -O https://repo.anaconda.com/miniconda/Miniconda3-py311-24.5.0-0-Linux-x86_64.sh # 2. 校验(官方 SHA256 在页面上可查) sha256sum Miniconda3-py311-24.5.0-0-Linux-x86_64.sh # 输出应匹配:e9a...c7f Miniconda3-py311-24.5.0-0-Linux-x86_64.sh # 3. 执行安装(-b 表示 batch mode,跳过所有交互提示;-p 指定路径,推荐 ~/miniconda3) bash Miniconda3-py311-24.5.0-0-Linux-x86_64.sh -b -p $HOME/miniconda3 # 4. 手动初始化(这才是关键!告诉 conda 你要初始化哪个 shell) $HOME/miniconda3/bin/conda init zsh为什么conda init zsh比bash xxx.sh更可靠?因为conda init会:
- 检测当前系统已安装的 shell 列表(
/etc/shells) - 在
~/.zshrc末尾追加一段标准初始化代码(包含 PATH 注入、conda 函数定义、shell hook) - 创建
~/.condarc默认配置(启用show_channel_urls: true,方便 debug) - 修改
~/.zshrc后自动执行source ~/.zshrc(仅限当前会话)
而bash xxx.sh的初始化逻辑是静态的,只认SHELL环境变量,且在某些 WSL 或容器环境中SHELL可能被错误设置为/bin/bash,即使你日常用zsh。
注意:
conda init必须用绝对路径调用,即$HOME/miniconda3/bin/conda init zsh,不能用conda init zsh(此时 conda 还未加入 PATH)。这是新手踩坑最高频的点——以为conda init是系统命令,其实它只是刚装好的那个二进制。
2.3 初始化环节:~/.zshrc里的三段代码,哪段决定你能否用conda activate
conda init zsh执行后,它会在~/.zshrc底部插入类似这样的内容:
# >>> conda initialize >>> # >>> conda initialize >>> # # !! Contents within this block are managed by 'conda init' !! # # You should not modify this section unless you know what you are doing. # # If you wish to change the location of your conda installation, # # use 'conda config --set envs_dirs <path>' and/or # # 'conda config --set pkgs_dirs <path>'. # # >>> conda initialize >>> # # Auto-generated by conda initialize # # >>> conda initialize >>> # # Initialize conda for shell zsh # # This code must be placed at the end of your .zshrc file # # before any other commands that depend on conda being initialized. # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda initialize >>> # # >>> conda......别慌,这不是 bug,是 conda 的“防篡改签名”。它用大量重复注释包裹真实代码,确保你不会误删关键行。真正起作用的只有三段:
PATH 注入段(核心):
# >>> conda initialize >>> # >>> conda initialize >>> # # !! Contents within this block are managed by 'conda init' !! # # You should not modify this section unless you know what you are doing. # # If you wish to change the location of your conda installation, # # use 'conda config --set envs_dirs <path>' and/or # # 'conda config --set pkgs_dirs <path>'. # # >>> conda initialize >>> # # Auto-generated by conda initialize # # >>> conda initialize >>> # # Initialize conda for shell zsh # # This code must be placed at the end of your .zshrc file # # before any other commands that depend on conda being initialized. # # >>> conda initialize >>> export PATH="/home/yourname/miniconda3/bin:$PATH" # <<< conda initialize <<<conda 函数定义段(让
conda activate可用):# >>> conda initialize >>> # >>> conda initialize >>> # # !! Contents within this block are managed by 'conda init' !! # # You should not modify this section unless you know what you are doing. # # If you wish to change the location of your conda installation, # # use 'conda config --set envs_dirs <path>' and/or # # 'conda config --set pkgs_dirs <path>'. # # >>> conda initialize >>> # # Auto-generated by conda initialize # # >>> conda initialize >>> # # Initialize conda for shell zsh # # This code must be placed at the end of your .zshrc file # # before any other commands that depend on conda being initialized. # # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>>............shell hook 段(让
conda activate改变当前 shell 环境):# >>> conda initialize >>> # >>> conda initialize >>> # # !! Contents within this block are managed by 'conda init' !! # # You should not modify this section unless you know what you are doing. # # If you wish to change the location of your conda installation, # # use 'conda config --set envs_dirs <path>' and/or # # 'conda config --set pkgs_dirs <path>'. # # >>> conda initialize >>> # # Auto-generated by conda initialize # # >>> conda initialize >>> # # Initialize conda for shell zsh # # This code must be placed at the end of your .zshrc file # # before any other commands that depend on conda being initialized. # # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>> # >>> conda initialize >>>
......