什么是 Conda

Conda 是一款功能强大的软件包管理器和环境管理器,可以在 Windows 的 Anaconda 提示符或 macOS 或 Linux 的终端窗口中使用命令行命令

  • Conda 可以快速安装、运行和更新软件包及相关依赖项。
  • Conda 可以在本地计算机上创建、保存、加载和切换特定项目的软件环境。

Conda/Miniconda/Anaconda三者的区别

下面通过一张图,形象的展示了 Conda 环境和软件包管理工具与 Miniconda 和 Anaconda Python 发行版(注:Anaconda Python 发行版现在有超过 150 个额外的软件包!)之间的区别。

安装地址【二选一即可】

Miniconda

Anaconda

安装 & 环境变量配置

Windows

针对Anaconda

下载后,基本上是傻瓜式安装,需要注意的是,在安装时这两个选项需要点上:

假设安装路径为:D:\Software\Anaconda,将以下路径加入到系统环境变量

1
2
3
4
5
D:\Software\Anaconda
D:\Software\Anaconda\Scripts
D:\Software\Anaconda\Library\mingw-w64\bin
D:\Software\Anaconda\Library\usr\bin
D:\Software\Anaconda\Library\bin

Linux

针对Miniconda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 赋权
chmod +x Miniconda3-py39_4.12.0-Linux-x86_64.sh
# 安装
./Miniconda3-latest-Linux-x86_64.sh

# 安装的过程中会提示同意安装协议等,一路yes就ok。安装完成后,会发现conda命令无法正常使用,这里要注意,需要执行如下命令才能生效:
vim ~/.bashrc
# 加入如下内容:
export PATH=/root/miniconda3/bin:$PATH
# 执行以下命令:
source ~/.bashrc

# 初始化 Conda
# 正常情况下安装完成后会提示是否将 Conda 默认启动配置到终端设置中,这样可以在开启新的终端时自动进入 conda 环境。如果不小心跳过了可以使用下面的方式手动进行初始化:
conda init bash
source ~/.bashrc

# 如果配置成功,终端开头应该会像下面这样显示
(base) $

更换conda的下载源

添加清华的下载源

1
2
3
4
5
6
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

使用conda

查看环境

1
2
3
# 查看当前系统环境,第二个用的是详细参数
conda info -e
conda info --envs

创建环境 / 删除环境

1
2
3
4
5
6
7
8
9
10
11
12
13
# name参数指定虚拟环境的名字,python参数指定要安装python的版本,但注意至少需要指定python版本或者要安装的包,在后一种情况下,自动安装最新python版本
conda create -n name python=3.6

# 例如
# 创建名字为naoqi,Python版本为2.7.14的虚拟环境,同时还会安装上pillow numpy这两个库
conda create -n naoqi pillow numpy python=2.7.14

# 删除名为naoqi的环境
conda remove -n naoqi --all

# 如果只是想删除环境里的某个依赖,可以使用如下命令
conda remove --name <env_name> <package_name>
conda remove --name PaddleOCR requests

环境切换

1
2
3
4
5
6
7
8
# 列出所有环境
conda env list

# 切换到naoqi环境下,在切换环境后,所执行的Pip命令,Python命令,都是更改当前环境下的,不会影响到其他的环境
activate naoqi

# 退出当前环境,也可以在已激活环境的情况下使用`activate root`切回root环境
deactivate

包管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 更新 Conda
codna update conda

# 显示当前环境下所有库,以及它的Build,Channel信息
conda list

# 安装版本为5.1.0的pillow库,如不指定版本默认安装最新版
conda install pillow=5.1.0

# 将pillow库升级到最新版
conda update pillow

# 搜索matplotlib这个库有哪些版本可以用conda安装
conda search matplotlib

# 删除当前环境下的numpy库
conda remove numpy

**************************************************************
# 显示当前环境下的库,带版本号
pip list

# 安装版本为1.14.3的numpy库,如不指定版本参数(=1.14.3),默认安装最新版
pip install numpy=1.14.3

# 将numpy库升级到最新版
pip install -U numpy

# 搜索与numpy名字相关的包
pip search numpy

# 删除名为numpy的库
pip unisntall numpy

环境克隆

1
2
# 制作naoqi环境的克隆,名字为naoqi_1
conda create --name naoqi_1 --clone naoqi

Conda 项目迁移

在进行协作研究项目时,你的操作系统通常可能与协作者使用的操作系统不同。同样,服务器操作系统可能与本地计算机上使用的操作系统不同。在这些情况下,创建与操作系统无关的环境文件非常有用,可以与协作者共享该文件或用于在远程群集上重新创建环境。

导出环境

1
2
3
4
5
# 相同系统 
conda env export --name test --file environment.yml

# 跨平台
conda env export --name machine-learning-env --from-history --file environment.yml

创建环境

1
conda env create --prefix ./env --file environment.yml

更新环境

1
conda env update --prefix ./env --file environment.yml --prune

重建环境

1
conda env create --prefix ./env --file environment.yml --force

导出Conda环境依赖

如果要将Conda环境迁移,可以一次性将环境内的包导出

1
2
# 语法&样例
conda list --explicit > /opt/env.txt

导入

1
2
# 语法&样例
conda install --file /opt/env.txt