conda 使用指南
conda commands ™
注意! 尖括号“<>”内的参数为必给参数,方括号“[]”内的参数为可选参数。
Changelog
data: 2021-04-25
Added
- 添加“conda 环境回滚”和“移动/共享 conda 环境”的命令
Fixed
修复了原本残缺的卸载方案
依照 markdownlint 规则修正了文中的 Markdown 语法错误
date: 2020-02-23
Added
- 添加“降级/重新安装特定版本库”的说明
Fixed
- 使代码更易复制
date: 2020-01-07
Added
- 添加“如何更换conda和pip镜像源”的说明
1. 安装
anaconda过于臃肿,绝大多数默认包并不会被使用,强烈推荐使用miniconda。
推荐下载地址:
1.1. Linux
1 | ./<file-name>.sh |
如果选择了conda init
初始化,可通过以下命令取消默认激活环境 base
1 | conda config --set auto_activate_base false |
1.2. Windows
直接双击exe文件,然后根据安装向导进行安装
2. 卸载
https://docs.anaconda.com/anaconda/install/uninstall/
2.1. Option A. 简单卸载
Linux
1
2# 删除 conda 安装目录,例如
rm -rf ~/miniconda3Windows
使用 Windows 资源管理器删除安装根目录中的 envs 和 pkgs 文件夹
计算机控制面板->程序与应用->卸载
2.2. Option B. 使用 Anaconda-Clean 完全卸载
必须先运行 Anaconda-Clean,然后才能使用 Option A 简单删除
安装 anaconda-clean
1
conda install anaconda-clean
运行 anaconda-clean 删除所有与 Anaconda 相关的文件和目录
1
2
3
4## 需要确认
anaconda-clean
## 无需确认
anaconda-clean --yes使用Anaconda-Clean之后,请按照上述 Option A 中的说明卸载 Anaconda
2.3. 最后,清理 .bash_profile
/.zshrc
中有关 conda 的设置
3. 更换镜像源
以清华镜像站为例,说明更换镜像源的方法
3.1 更换conda镜像源
各系统都可以通过修改用户目录下的 .condarc 文件:
1 | channels: |
Windows下文件路径:
%HOMEPATH%\.condarc
若目录下无该文件,可先执行
conda config
生成该文件之后再修改。Linux下文件路径:
~/.condarc
3.2 更换pip镜像源
1 | pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
4. 升级
4.1 方法一:切换到相应环境
首先切换到相应环境
1 | conda activate <envernment> |
进行升级(conda 与其他包的升级是独立的)
1 | # 升级 conda |
4.2 方法二:通过参数-n
指定环境
1 | # 例如,更新 base 环境下 python |
5. 降级 (安装指定版本)
1 | conda install --force-reinstall tensorflow=1 |
6. conda 基本命令
6.1 环境的操作
1 | # 显示所有的虚拟环境 |
6.2 环境内部包的操作
1 | # 查看已经安装的包 |
6.3 环境的重命名
conda是没有重命名环境的功能, 要实现这个基本需求, 只能通过蠢蠢的克隆+删除来实现。
1 | # 克隆环境 |
7. conda 高级命令
7.1 环境回滚/环境重置/修订历史
激活相应环境
1
conda activate <env-name>
列出环境 env-name 修订/修改历史
1
2
3
4
5
6
7
8
9
10
11
12# 修订版本号(REVISION)为括号中 rev 后面的阿拉伯数字,“0”表示初始版本。
~]$ conda list --revisions
输出实例:
2021-01-01 00:00:00 (rev **0**)
+_libgcc_mutex-0.1
+ca-certificates-2020.1.1
+certifi-2020.4.5.1
+cffi-1.14.0
+chardet-3.0.4
+conda-4.8.3恢复到指定版本
1
2# 将修订版本号(REVISION)替换为所需版本号,“0”表示初始化当前环境
conda install --revision REVISION
7.2 移动 conda 环境
https://www.anaconda.com/blog/moving-conda-environments
https://docs.conda.io/projects/conda/en/latest/commands/create.html
https://docs.conda.io/projects/conda/en/latest/commands/list.html
https://conda.github.io/conda-pack/
指定需要操作的环境环境
a. 激活环境然后操作
1
conda activate <env-name>
b. 或通过 -n 指定环境,例如:
conda list -n <env-name>
7.2.1. Option A. 列出环境中所有已安装的包及相应版本,使用 YAML 格式(推荐)
特点:平台&操作系统无关、不指定镜像源、仅导出包列表/恢复时需要联网、包含 pip 包、YAML 格式化
导出:
1
conda env export > environment.yml
恢复:
1
conda env create -f environment.yml
7.2.2. Option B. 列出环境中所有已安装的包及相应版本,并导出至文件
特点:平台&操作系统无关、不指定镜像源、仅导出包列表/恢复时需要联网、包含 pip 包
导出:
1
conda list --export > package-list.txt
恢复:
1
conda create -n <env-name> --file <file>
7.2.3. Option C. 将环境打包存档
特点:平台&操作系统相关、指定镜像源、二进制文件打包/恢复时无需联网、打包时需要额外工具
在 root/base 环境下安装 conda-pack
conda-forge:
1
conda install -c conda-forge conda-pack
PyPI:
1
pip install conda-pack
打包
1
2
3
4
5
6# 将环境 my_env 打包至 my_env.tar.gz
conda pack -n my_env
# 将环境 my_env 打包至 out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz
# 或者用路径指定需要打包的环境
conda pack -p /explicit/path/to/my_env安装
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# 将环境解包至`my_env`目录
$ mkdir -p my_env
$ tar -xzf my_env.tar.gz -C my_env
# 无需激活/修复前缀(prefixes)即可使用 python,大多数库将正常工作
# 但需要清理前缀的将会失败
# ps. 前缀指 conda 环境的绝对路径等
# 清理前缀大概指整顿 conda 环境路径
$ ./my_env/bin/python
# 激活环境,这会暂时将`my_env/bin`添加至环境变量`$PATH`中
$ source my_env/bin/activate
# 在环境中运行 Python
(my_env) $ python
# 在活动环境中清理前缀
# 注意,此命令也可以在不激活环境的情况下运行
# 只要机器上已经安装了某些版本的 Python
(my_env) $ conda-unpack
# 此时,环境就像您直接使用conda在此处安装该环境一样,
# 所有脚本都可以正常工作。
(my_env) $ ipython --version
# 停用环境以将其从路径中删除
(my_env) $ source my_env/bin/deactivate
7.2.4. Option D. 以 URL 的形式将已安装 conda 包列表导出至文件
特点:平台&操作系统相关、指定镜像源、仅导出包列表/恢复时需要联网、仅包含 conda 包/不包含 pip 包
导出:
1
conda list --explicit > package-list-explicit-file-for-create.txt
恢复:
1
conda create -n <env-name> --file <file>
8. 清理
1 | # 删除没用的包 |