跳到主要内容

Conda(Python 环境与包管理)

Conda 用来管理 Python 版本、虚拟环境和依赖包。做 AI、数据处理、OCR、深度学习项目时,建议每个项目单独创建一个环境,避免依赖互相污染。

安装

推荐安装 Miniconda,体积更小,后续按需安装依赖即可。

Windows

下载 .exe 安装包后按步骤安装。安装完成后,如果命令行无法识别 conda,将下面目录加入系统环境变量:

D:\devtool\anaconda3\condabin

检查是否安装成功:

conda --version

初始化 Shell:

conda init
提示

执行 conda init 后,关闭并重新打开终端再使用 conda activate

环境管理

创建环境

# 创建指定 Python 版本的环境
conda create -n myenv python=3.10

# 创建环境并同时安装常用包
conda create -n myenv python=3.10 numpy pandas

激活与退出

# 激活环境
conda activate myenv

# 退出当前环境
conda deactivate

查看环境

# 查看所有环境
conda env list

# 或者
conda info --envs

删除环境

conda remove -n myenv --all
注意

删除环境会移除该环境里的 Python 和所有依赖包,执行前确认环境名是否正确。

包管理

# 安装包
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

pip install 包名
提示

同一个环境里可以混用 condapip,但建议优先用 conda 安装底层依赖较重的包,例如 numpyopencvpytorch

镜像源

网络较慢时可以配置清华镜像源。

Conda 源

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

查看当前配置:

conda config --show channels

恢复默认源:

conda config --remove-key channels

pip 源

Conda 环境里经常也会使用 pip installpip 使用的是 PyPI 源,和上面的 Conda channel 不是同一套配置。

参考:清华大学开源软件镜像站 PyPI 帮助页:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

临时使用清华 PyPI 源安装某个包:

pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
提示

地址末尾的 simple 不能省略;pip 要求使用 https

设置为默认 PyPI 源:

python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

如果默认源访问很慢,可以临时使用清华源升级 pip

python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip

查看当前 pip 配置:

pip config list

取消全局 PyPI 源配置:

pip config unset global.index-url

配置额外源:

pip config set global.extra-index-url "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

环境导出与迁移

导出环境

conda env export > environment.yml

根据文件创建环境

conda env create -f environment.yml

更新已有环境

conda env update -f environment.yml --prune

导出精简依赖

只导出手动安装的依赖,适合项目记录:

conda env export --from-history > environment.yml

清理缓存

# 清理安装包缓存
conda clean -p

# 清理 tar 包缓存
conda clean -t

# 清理所有可清理缓存
conda clean -a

常见问题

conda activate 不生效

先初始化 Shell,再重启终端:

conda init

进入终端自动激活 base

如果不想每次打开终端都进入 base 环境:

conda config --set auto_activate_base false

恢复自动激活:

conda config --set auto_activate_base true

查看 Python 与 pip 来自哪个环境

where python
where pip

Linux / macOS:

which python
which pip

依赖冲突

优先新建干净环境,不要在旧环境里反复修:

conda create -n newenv python=3.10
conda activate newenv