Files
workspace/code/docusaurus/docs/dev-tools/conda.md
T
2026-06-08 16:04:03 +08:00

270 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Conda(Python 环境与包管理)
Conda 用来管理 Python 版本、虚拟环境和依赖包。做 AI、数据处理、OCR、深度学习项目时,建议每个项目单独创建一个环境,避免依赖互相污染。
## 安装
推荐安装 Miniconda,体积更小,后续按需安装依赖即可。
- Miniconda:https://docs.conda.io/projects/miniconda/en/latest/
- Anaconda:https://www.anaconda.com/download/success?reg=skipped
### Windows
下载 `.exe` 安装包后按步骤安装。安装完成后,如果命令行无法识别 `conda`,将下面目录加入系统环境变量:
```text
D:\devtool\anaconda3\condabin
```
检查是否安装成功:
```bash
conda --version
```
初始化 Shell:
```bash
conda init
```
:::tip
执行 `conda init` 后,关闭并重新打开终端再使用 `conda activate`。
:::
## 环境管理
### 创建环境
```bash
# 创建指定 Python 版本的环境
conda create -n myenv python=3.10
# 创建环境并同时安装常用包
conda create -n myenv python=3.10 numpy pandas
```
### 激活与退出
```bash
# 激活环境
conda activate myenv
# 退出当前环境
conda deactivate
```
### 查看环境
```bash
# 查看所有环境
conda env list
# 或者
conda info --envs
```
### 删除环境
```bash
conda remove -n myenv --all
```
:::warning
删除环境会移除该环境里的 Python 和所有依赖包,执行前确认环境名是否正确。
:::
## 包管理
```bash
# 安装包
conda install numpy
# 安装指定版本
conda install python=3.10
conda install numpy=1.26
# 从指定 channel 安装
conda install -c conda-forge opencv
# 更新包
conda update numpy
# 删除包
conda remove numpy
# 查看当前环境已安装的包
conda list
```
如果 Conda 找不到包,可以在当前环境中使用 `pip`:
```bash
pip install 包名
```
:::tip
同一个环境里可以混用 `conda` 和 `pip`,但建议优先用 `conda` 安装底层依赖较重的包,例如 `numpy`、`opencv`、`pytorch`。
:::
## 镜像源
网络较慢时可以配置清华镜像源。
### Conda 源
```bash
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --set show_channel_urls yes
```
查看当前配置:
```bash
conda config --show channels
```
恢复默认源:
```bash
conda config --remove-key channels
```
### pip 源
Conda 环境里经常也会使用 `pip install`。`pip` 使用的是 PyPI 源,和上面的 Conda channel 不是同一套配置。
参考:清华大学开源软件镜像站 PyPI 帮助页:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
临时使用清华 PyPI 源安装某个包:
```bash
pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
```
:::tip
地址末尾的 `simple` 不能省略;`pip` 要求使用 `https`。
:::
设置为默认 PyPI 源:
```bash
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
```
如果默认源访问很慢,可以临时使用清华源升级 `pip`:
```bash
python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip
```
查看当前 `pip` 配置:
```bash
pip config list
```
取消全局 PyPI 源配置:
```bash
pip config unset global.index-url
```
配置额外源:
```bash
pip config set global.extra-index-url "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
```
## 环境导出与迁移
### 导出环境
```bash
conda env export > environment.yml
```
### 根据文件创建环境
```bash
conda env create -f environment.yml
```
### 更新已有环境
```bash
conda env update -f environment.yml --prune
```
### 导出精简依赖
只导出手动安装的依赖,适合项目记录:
```bash
conda env export --from-history > environment.yml
```
## 清理缓存
```bash
# 清理安装包缓存
conda clean -p
# 清理 tar 包缓存
conda clean -t
# 清理所有可清理缓存
conda clean -a
```
## 常见问题
### conda activate 不生效
先初始化 Shell,再重启终端:
```bash
conda init
```
### 进入终端自动激活 base
如果不想每次打开终端都进入 `base` 环境:
```bash
conda config --set auto_activate_base false
```
恢复自动激活:
```bash
conda config --set auto_activate_base true
```
### 查看 Python 与 pip 来自哪个环境
```bash
where python
where pip
```
Linux / macOS:
```bash
which python
which pip
```
### 依赖冲突
优先新建干净环境,不要在旧环境里反复修:
```bash
conda create -n newenv python=3.10
conda activate newenv
```