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. 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 )
Conda/Miniconda/Anaconda 常用命令整理及介绍的更多相关文章
- 【linux】---常用命令整理
linux常用命令整理 一.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: l ...
- Tomcat性能优化及常用命令整理
1汤姆猫性能优化 1.1连接参数 1.1.1默认连接配置 默认连接器采用阻塞式 IO,默认最大线程数为200,配置如下: <Connector port="8080" pro ...
- linux 服务器常用命令整理
linux 服务器常用命令整理 目录 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload 网络传输 - scp \ rsync \ (rz ...
- (小组)Git 常用命令整理
Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone git@xbc.me:wordpress.git 添加远程版本库origin,语法 ...
- salt 常用命令整理
salt 常用命令整理 ***********模块*********** 查看模块列表module salt 'minion' sys.list_modules 查看指定module的function ...
- Dos常用命令整理
Dos常用命令整理 打开cmd的方法 开始菜单 -> 系统 -> 命令提示符 组合键Win+R打开运行 -> 输入cmd 在任意文件夹下Shift+鼠标右键 -> 在此处打开命 ...
- Anaconda常用命令大全
使用conda 首先我们将要确认你已经安装好了conda 配置环境 下一步我们将通过创建几个环境来展示conda的环境管理功能.使你更加轻松的了解关于环境的一切.我们将学习如何确认你在哪个环境中,以及 ...
- Linux上常用命令整理(一)—— cat
近几个月刚从windows上转过来,开始慢慢熟悉linux,先不撕比到底哪个更好,首先要怀着相互借鉴的精神去了解各个平台. Linux上做开发,除去使用文本编辑器做开发的大神之外,大家(包括我这种菜鸟 ...
- Linux常用命令整理:文件目录管理
据说,你要对Linux文件做的事情,98%都记录在这篇文章里了. 1.ls命令 最常见的命令,相信刚进入linux命令行界面的时候,都要用这个命令看看当前目录下都有哪些文件吧. 名称:List 含义: ...
随机推荐
- 爬虫破解知乎登入(不使用Selenium模块)
一.分析 知乎完成登入的步骤 首先获得cookies(如果不获得后面验证码无法获得) 获得验证码 提交登入相关内容 前两步简单稍微细心寻找规律即可 其中最难的是第三步应该他前端进行了js加密 这里没什 ...
- 微信小程序开发环境安装以及相关设置配置
微信小程序开发环境安装以及相关设置配置 一.安装 软件名称:wechat_devtools_1.02.1907232_x64 软件安装地址:https://developers.weixin.qq.c ...
- main(argc, char *argv[])
#include<stdio.h> int main(int argc, char *argv[]) { int i; ;i<argc;i++) { printf("arg ...
- [Luogu2458][SDOI2006]保安站岗
题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地下超市的所有通道呈一棵树的形状:某些通道之间可以互 ...
- Halcon一日一练:图像采集设备的基本参数
因操作图像处理之前,需要对图像进行采集.采集图像,我们首先要确定的是图像的像素和采集的效率.这些都需要对设备进行配置与操作.现实情况是图像设备有各自不同的采集方式,配置也各不相同.这就需要设备提供商提 ...
- SpringCloud之RefreshScope 源码解读
SpringCloud之RefreshScope @Scope 源码解读 Scope(org.springframework.beans.factory.config.Scope)是Spring 2. ...
- MyCat教程五:实现分库分表
本文我们来介绍下MyCat的分库分表操作 分库分表 一.分片规则介绍 在rule.xml中定义了各种myCat支持的分片规则. 取模mod-long 自然月分片 sharding-by-mon ...
- HDFS概述(一)
HDFS概述(一) 1. HDFS产出的背景及定义 1.1 HDFS产生的背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需 ...
- AB实验的高端玩法系列2 - 更敏感的AB实验, CUPED!
背景 AB实验可谓是互联网公司进行产品迭代增加用户粘性的大杀器.但人们对AB实验的应用往往只停留在开实验算P值,然后let it go...let it go ... 让我们把AB实验的结果简单的拆解 ...
- MyBatis 示例-类型处理器
MyBatis 提供了很多默认类型处理器,参考官网地址:链接,除了官网提供的类型处理器,我们也可以自定义类型处理器. 具体做法为:实现 org.apache.ibatis.type.TypeHandl ...