Python - conda 常用命令介绍

本文最后更新于:2022年7月4日 上午

本文介绍使用conda管理anaconda Python环境的相关命令。

conda 环境相关命令

创建环境

1
conda create -n env_name python=3.7 --clone another_env

-n:name 表示新环境名称

python:使用python版本

–clone:从现有环境复制而来

删除环境

1
conda remove -n env_name --all

查看环境

1
conda env list 

1
conda info -e

激活环境

1
conda activate env_name

1
source activate env_name

退出环境

1
conda deactivate

1
source deactivate

会回到base环境

conda 包相关命令

查看当前环境下conda管理的python包列表

1
conda list

安装python包

1
2
3
conda install package_name #安装包
conda install package_name_1 package_name_2 package_name_3 ... #一次安装多个包
conda install package_name=1.1.0 #安装指定版本的包

更新包

1
2
conda update package_name # 更新包
conda upgrade --all #更新所有包

卸载包

1
conda remove package_name

搜索不清楚名称的包

1
conda search search_term

conda 重现环境

使用conda管理python一个重要的考量就是可迁移性,conda 提供了几种方法用于重现某个conda 环境。

Clone

上文介绍过这个命令,用于本地重现某个环境

1
conda create --name new_env --clone old_env

Spec List

相同操作系统的计算机之间复制环境,可以生成 spec list

1
2
3
4
# 生成 spec list 文件
conda list --explicit > spec-list.txt
#重现环境:
conda create --name python-course --file spec-list.txt

Environment.yml

使用 -export 选项生成一个 environment.yml 文件,以在不同的平台和操作系统之间复现项目环境。

spec list 文件和 environment.yml 文件之间的区别在于: environment.yml 文件不针对特定操作系统,并且使用YAML格式。environment.yml 仅列出了软件包名称,由 conda 基于软件包的名称构建环境。 另一个区别是 -export 还包括使用pip安装的软件包,而 spec list 则没有。

1
2
3
4
#导出 environment.yml 文件:
conda env export > environment.yml
#重现环境:
conda env create -f environment.yml

注意:如果当前路径已经有了 environment.yml 文件,conda 会重写这个文件

Conda Pack

上述两种重现的方法都基于记录当前环境包信息,到新机器重建的思路。而Conda Pack用的是将当前环境的文件直接打包,带到新机器拆包使用的思路。

conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统。

安装 conda pack

1
2
3
4
# from conda
conda install -c conda-forge conda-pack
# from pip
pip install conda-pack

打包环境

1
2
conda pack -n my_env
conda pack -n my_env -o out_name.tar.gz

重现环境

1
2
3
4
5
mkdir -p path_to_my_new_env # 建议放在anaconda的envs文件夹中
tar -xzf my_env.tar.gz -C path_to_my_new_env # 解压包中文件
source path_to_my_new_env/bin/activate # 激活该环境
(my_env) $ python # 进入一下该环境下的 python 随后退出
(my_env) $ conda-unpack # 十分重要,请不要忽略

Python - conda 常用命令介绍
https://www.zywvvd.com/notes/coding/python/conda-env-operation/conda-env-operation/
作者
Yiwei Zhang
发布于
2020年6月20日
许可协议