Welcome!

HELO

困难的路越走越容易,容易的路越走越困难。

[2020更新深入解读]Conda/Miniconda/Anaconda 安装及常用命令整理及介绍

作者:HELO 出处:http://www.cnblogs.com/HELO-K 欢迎转载, 转载时请保留此声明, 谢谢!

 # Conda/Miniconda/Anaconda 介绍

1. Conda/Miniconda/Anaconda 之间的关系

Conda: 你可以从官方文档找到对Conda的介绍, Conda是一个适用于任何语言的软件包/依赖项/环境管理工具, 而不仅仅是python的包/环境管理工具. Conda可以让用户更轻松方便的安装/运行/更新软件包, 方便的创建/保存/加载/切换虚拟环境. 

Anaconda/Miniconda是打包好的Conda安装程序, 可以帮你一键安装 Python + Conda + 一些软件包, 不同之处在于Anaconda同时打包了1500个常用的软件包, 可以一次性安装到你到python环境中, 这样你就不用再一个个安装软件包了, 对新手非常友好. 而Miniconda一个最小的python+conda安装程序, 只包含了最必要的包.

2. 我该选择Anaconda还是Miniconda?

如果你是新手, 不要犹豫, 请直接安装Anaconda, 这样你就不需要在环境配置上花费太多时间, 安装即用, 专心把精力花在python学习上吧. 当然, 因为Anaconda附带了大量的库, 所以Anaconda安装过程会比较久, 安装后也会占用较大的空间(几个G), 但请相信, 安装过程的时间成本相比自行配置安装环境的成本要低多了.

如果你使用Anaconda已经有一段时间了, 对conda的命令都已经熟悉, 那就可以试一下Miniconda了, 只安装自己需要的包. 此外在一些需要部署的场合, 安装几个G的Anaconda也是不现实的, 并且很多库都用不上, 此时使用Miniconda就是一个更合适的选择.

3. 为什么要切换虚拟环境呢? 只用一个环境不行吗?

不行的, python的软件包数量众多, 版本更新迅速, 但不同包以及不同版本的包对其他软件包的依赖情况可能不同. 所以在不同的项目中我们可能需要给项目配置不同的环境, 比方说有的项目要在python2.7下运行, 有些要在python3.6, 有的要使用opencv3, 有的要使用opencv4. 因此我们需要一个工具能帮我们方便的创建/管理虚拟环境, 于是Conda应运而生, 成为在这方面最流行的一个工具.

 

 # Miniconda/Anaconda 安装

因为网上已经有大量的一张图一张图的安装教程, 这里我就不详细介绍了, 只说一些需要注意的点.

1. 从官网下载 Miniconda 或者 Anaconda 安装包, 建议选择python3, 64位的版本.

2. windows版安装过程中有一个页面问你是否把conda "add to path", 见下图, 这里这个选项正如选项下方所说, 不建议勾选, 勾选之后容易出现一些问题, 反正我是真的遇到了. 但不在这里勾选, 我们依旧需要在系统的环境变量里手动添加环境变量.

 

 

3. 添加环境变量: 打开开始菜单, 直接输入环境变量, 应该就能看到环境变量的选项了, 见下图, 这样启动方式比较快. 然后在环境变量中添加下面3行,同样见图片中的步骤说明.需要添加的内容为: 

C:\xxxx\yyy\Anaconda3 

C:\xxxx\yyy\Anaconda3\Script

C:\xxxx\yyy\Anaconda3\Library\bin

注意:

(1). 这3行内容对应的就是anaconda/miniconda安装文件夹所在位置, 添加环境变量后, 可让系统检索到conda的可执行文件, 便于全局调用.

(2). 对于miniconda上述内容请改为miniconda3, 此处仅为举例.

(3). 对于第三行内容, 大多数教程都没有添加, 但我在实际使用中遇到过包无法安装/更新的情况, 添加这个环境变量就解决了. 所以第三行可选, 在遇到问题是可尝试加上.

 4. Conda 命令行初始化. conda安装后, 运行 conda activate xxx 切换环境时, 可能会报如下错误, 正如报错中的说明, conda 需要对当前的命令行环境初始化才能使用, 请根据你所使用的命令行工具来进行初始化, 输入命令如 conda init powershell 或者 conda init bash. 输入之后, 重启命令行即可. 

 

 初始化完成之后, 正常情况下, 每条命令前会显示当前的conda环境, 见下图, "py36" 是我建的一个环境.

 

 

# Conda 使用的经验之谈

todo 待更

  # Conda 常用命令

在这里整理一份全一点的 Conda 常用命令, 方便大家日常使用时参考, 一些命令也加入了一些针对初学者的更详细介绍, 大佬请忽略.

本文会不断更新, 记得使用页面搜索来找需要的命令哦, 对了, 网页端在某一行连续三击似乎可以选中当前行, 方便复制.

如果发现了错误, 欢迎指出, 我会尽快修改.

 


# conda 添加国内源

# 添加国内源/通道, 默认源在国外, 国内访问较慢, 建议添加国内源, 下载更新能节省很多时间, 以下为清华的源, 比较常用

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

# 设置安装时显示源地址, 方便安装时知道包来自哪个源

conda config --set show_channel_urls yes

 

# 查看 conda 基本信息

# 查看 conda 版本信息
conda info
# 更新 conda 版本
conda update -n base conda 

 

# conda 环境相关, 新建/激活/切换/删除

# 列出所有环境
conda env list
# 新建环境
# 新建一个名为 ENVNAME 的python版本为3.6的
conda create --name ENVNAME python=3.6
# 这里 --name 可以缩写为 -n,所以下面这个用法更常用, 下文同样会使用这种缩写方式,查看所有的缩写 conda create -n ENVNAME python=3.6 # 也可在创建环境的同时安装一些包,也可以同时指定包的版本, 如 conda create -n ENVNAME python=3.7 numpy=1.16.4 matplotlib

# 激活/切换环境
# 激活名为 ENVNAME 的环境
conda activate ENVNAME
# 激活特定路径的环境,笔者注: 这个命令偶尔会用 conda activate /path/to/environment-dir
# 关闭当前环境,笔者注: 如果不在继续使用此命令行窗口,直接关闭该窗口静即可 # 关闭环境后面不需要指定环境名,默认关闭当前环境 conda deactivate

# 删除环境, 笔者注: 也可以直接删掉 anaconda 安装目录下 envs 里面的对应文件夹
conda remove -n
ENVNAME --all

# 复制环境, 笔者注: 不可通过复制 anaconda 安装目录下 envs 下的文件夹来复制环境, 因为这样的操作不会自己改变此环境里的配置信息, 对复制后的环境的操作会影响到原环境
# 复制 ENVNAME1, 新环境命名为 ENVNAME2
conda create -n ENVNAME2 --clone ENVNAME1

# 重命名, 目前没有直接重命名的命令, 需要先 clone 再 remove 旧环境
conda create -n ENVNAME2 --clone ENVNAME1
conda remove -n ENVNAME1 --all

 

# 包管理相关

# 列出当前环境已安装的所有包
conda list
# 列出指定环境的所有包 conda list
-n ENVNAME
# 列出当前环境变化的版本历史, 笔者注: 这个版本记录类似与git的记录, 记录你每次的包管理操作后环境
记录 # 笔者注: 这个命令关键时候可以救命, 比方说你手贱升级了某个环境, 发现有问题想回滚到之前的环境状态时 conda list --revisions
# 同上, 列出指定环境的包管理变化的版本历史 conda list
--name ENVNAME --revisions
# 结合上面两个命令使用, 先通过上面的命令列出所有版本, 然后通过下面这个命令会退到某个版本 conda
install -n ENVNAME --revision REV_NUMBER
# 删除某个环境, 还有一个比较暴力的方式就是直接删除anaconda安装路径下的 envs
/ENVNAME 文件夹 conda remove -n ENVNAME --all

 

# 环境共享相关

# 复制指定环境
conda create --clone ENVNAME --name NEWENV
# 导出指定环境到YAML文件 (便于在另一台电脑上导入以恢复同样的环境) conda
env export --name ENVNAME > envname.yml
# 从YAML文件创建环境 conda
env create --file envname.yml
# 如果当前目录下有 environment.yml 文件, 也不输入文件名直接创建环境,如下: conda
env create
# 导出当前环境的包版本列表 conda list
--explicit > pkgs.txt
#或者使用下面命令导出更简单的包列表 conda list
-e > pkgs.txt

# 基于包版本清单创建环境
conda create --name NEWENV --file pkgs.txt

 

# Packages(包)和Channels(源/通道)的使用

# 添加 Channels
conda config --add channels CHANNELNAME
# 使用conda从已配置的Channels中搜索包, 可以带上版本号, 笔者注: 用得少, 图形界面的系统下, 可以直接百度/google搜索更方便一点 conda search numpy
=1.16
# 使用anaconda从所有Channels中搜索包 anaconda search FUZZYNAME
# 从指定通道安装包,如 conda
install conda-forge::PKGNAME
# 安装指定版本的包,一个等号或2个等号均可 conda
install PKGNAME==3.1.4
# 卸载当前环境的某个包 conda uninstall PKGNAME
# 卸载指定环境的某个包 conda uninstall
-n ENVNAME PKGNAME
# 升级环境的所有包, 同样可以指定环境
conda update --all -n ENVNAME

# 升级某个包, 同样可以通过 -n ENVNAME 指定环境
conda update PKGNAME

 

# 其他有用的命令

# 搜索包时加上 --info, 可以输出包的详细信息
conda search PKGNAME --info

# 清理不用的缓存和包, 有时可以轻轻松松清理出几个G, 但如果不是硬盘空间特别有限的情况, 建议不用清理, 因为安装包如果缓存中有这个包就不用重新下载了 conda clean --all
# 安装包且输出命令提示,也就是直接安装不需要确认, 再写自动运行的脚本时会很有用 conda
install --yes PKG1 PKG2
# 输出conda的配置 conda config
--show

 

# 参考

本文大量参考了Conda官方的英文版CheatSheet 
[ Conda Cheat sheet ]( https://conda.io/projects/conda/en/latest/user-guide/cheatsheet.html )
[ conda cheatsheet ]( https://gist.github.com/qheuristics/8943338 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-09-14 19:54  HELO-K  阅读(5698)  评论(0编辑  收藏  举报