区分conda, anaconda, miniconda

anaconda相当于conda+python+pip+一堆python科学计算常用包(numpy, scipy, matplotlib等)

miniconda相当于conda+python+pip,轻量级。

conda是通用的包管理器,能装pip包(例如numpy),也能装其他语言的软件包(例如ninja, cmake).

如果你用Python,做深度学习,那么强烈建议你使用miniconda/anaconda而不是系统自带Python/pip,虽然硬盘空间可能多消耗一些,但往往能节省在环境配置上的时间开销。

本文的各种命令可以在conda官方的文档中找到:Conda User guide

不过,官网文档内容过于详实,简直就是字典,我是看不下去的..

conda版本

conda -V

或者

conda --version

虚拟环境

创建虚拟环境

conda create -n env_name python=x.y

e.g. 创建python3.5的虚拟环境:

conda create -n py35 python=3.5

删除虚拟环境

conda remove --name env_name --all

重命名虚拟环境

没法直接重命名虚拟环境,只能很naive的从原有环境clone,然后删掉原有环境(或者用下面的“分享环境”的做法,不过估计需要联网速度更慢):

conda create --name new_name --clone old_name
conda remove --name old_name --all

列出虚拟环境

conda env list

或者:

conda info --envs
#也可以用缩写形式:
conda info -e

切换/激活虚拟环境

conda activate env_name

e.g. 激活py35环境:

conda activate py35

退出当前虚拟环境

conda deactivate

分享环境

导出虚拟环境

导出到yml文件,相当于pip用的requirements.txt的升级版

conda env export > environment.yml

注意:如果导出的environment.yml开头几行显示的channel是anaconda官方(https://repo.anaconda.com/pkgs/main),可以考虑换成tuna的镜像通道(https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main)来加速,e.g.

name: base
channels:
- https://repo.anaconda.com/pkgs/main
- defaults
dependencies:
- asn1crypto=0.24.0=py37_0
- attrs=19.3.0=py_0
- backcall=0.1.0=py37_0
...

换成:

name: base
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- defaults
dependencies:
- asn1crypto=0.24.0=py37_0
- attrs=19.3.0=py_0
- backcall=0.1.0=py37_0
...

使用yml导入创建虚拟环境

conda env create -n env_name -f environment.yml

复制虚拟环境

conda create -n new_env_name --clone env_name

查看某个环境的位置

默认的conda虚拟环境叫做"base",它提供的python在/home/zz/soft/miniconda

base环境之外的虚拟环境,例如py35,在/home/zz/soft/miniconda3/envs/py35/

在某些开源项目的编译配置环境(例如OpenCV等),可以指定特定版本的python,则需要到/home/zz/soft/miniconda3/envs/py35/这样的位置下找。

列出软件包

包的基本信息

显示当前环境的所有包的基本信息

conda list

显示指定虚拟环境的所有包的基本信息

conda list -n env_name

区分显示conda和pip包的信息

当前环境的:

conda env export

输出结果中- pip开始列出的是pip包列表。

conda env export -n env_name

安装软件包

当前虚拟环境中安装软件包

conda install pkg_name

e.g. 安装cmake(cmake不是一个pypi包,但可以通过conda下载安装,并且如果你在condarc中配置了国内镜像,下载起来会非常快,比自己手动去cmake官网下载快很多):

conda install cmake

指定虚拟环境中安装软件包

conda install --name env_name pkg_name

指定channel下载安装

以下载pytorch包举例:

conda install --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ pytorch

或者用缩写的参数-c替代--channels,用~/.condarc中配置的名为pytorch的channel

conda install -c pytorch pytorch

删除软件包

当前环境

conda remove pkg_name

指定环境

conda remove --name env_name pkg_name

查找软件包

conda search pkg_name

conda配置

.condarc

Linux/Mac: ~/.condarc

Windows: c:/Users/xxx/.condarc

在国内使用tuna的conda镜像。个人感觉这个.condarc中配置的是各个channel,一方面是管理不同版本的包(例如pytorch这个channe),另一方面可以切换镜像,用来加速。

channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

pip.conf

Linux/Mac: ~/.pip/pip.conf

Windows: C:/Users/xxx/pip/pip.ini

除了配置conda镜像,还需要配置pip镜像。因为很多python包还是需要通过pip而不是conda安装(conda里没有相应的包,只有pypi里有),此时pip使用国内镜像来加速,需要配置pip.conf,例如:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/ [install]
trusted-host=mirrors.aliyun.com

bash/zsh自动加载

以前都是安装miniconda/anaconda时选择"yes",自动追加配置到~/.bashrc,然后手动复制到~/.zshrc(我默认用的zsh替代了bash作为解释器)。其实可以更简单:

conda init zsh

进入bash/zsh不自动activate base env

conda config --set auto_activate_base false

conda实践:安装python2的pip无法安装的包

由于pip官方的不作为(辣鸡pip),现如今python2对应的pip几乎没法装pypi包了,一旦安装就会失败,提示你说:需要至少python3.5的环境。老子的python2为什么不给用了?垃圾pip。

RuntimeError: Python version >= 3.5 required

解决办法:用conda安装!例如:

conda install numpy

简明conda使用指南的更多相关文章

  1. python anaconda 常用操作;conda 命令指南

    在使用 python anaconda时,经常会用到很多常用操作,记录下来,方便以后更好地使用: conda: Conda既是一个包管理器又是一个环境管理器.你肯定知道包管理器,它可以帮你发现和查看包 ...

  2. Anaconda多环境多版本python配置指导

    Anaconda多环境多版本python配置指导 字数3696 阅读644 评论0 喜欢0 最近学python,读完了语法后在GitHub找了一些练习来做,由 于学的是python3.x语法,而Git ...

  3. typedef和typename关键字

    .类型说明typedef 类型说明的格式为: typedef 类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整型数 ...

  4. Ubuntu 简单安装和配置 GitLab

    使用的 Ubuntu Server 16.04 LTS 版本,服务器托管在 Azure 上,用的 1 元试用 1 个月服务器订阅(1500 元额度). 安装命令(推荐使用): curl -sS htt ...

  5. typedeifn typename

    1.类型说明typedef 类型说明的格式为: typedef  类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整 ...

  6. ruby 学习网站

    Ruby on Rails官网: http://rubyonrails.org/ Rails Guides:http://guides.rubyonrails.org/ -中文版: http://gu ...

  7. Ubuntu16.04+Tensorflow+CUDA9.0+cuDNN7.0 环境简明搭建指南

    最近在研究风格化得内容,发现搭建环境实在是很头疼的事情,虽然网上已经有各路大神总结整理好了很多搭建指南,各种问题的解决方案都已经罗列出来供大家参考.然后参考终究是参考,真正自己上手,发现仍旧是各种坑, ...

  8. 【转】git - 简明指南

    git - 简明指南 助你入门 git 的简明指南,木有高深内容 ;) 作者:罗杰·杜德勒 感谢:@tfnico, @fhd 和 Namics其他语言 english, deutsch, españo ...

  9. git - 简明指南

    助你入门 git 的简明指南,木有高深内容 ;) 作者:罗杰·杜德勒 感谢:@tfnico, @fhd 和 Namics如有纰漏,请在 github 提报问题 安装 下载 git OSX 版 下载 g ...

随机推荐

  1. CF306C White, Black and White Again

    CF306C White, Black and White Again 洛谷评测传送门 题目描述 Polycarpus is sure that his life fits the descripti ...

  2. Jmeter接口测试,怎么在下一个接口调用上一个接口的数据

    常用的两种方式,第二种容易上手1.使用正则提取器 jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器(http://www.cnblogs.com/0201zcr/p/5089 ...

  3. thymeleaf实现热部署

    热部署可以在修改页面之后,不重新启动服务器也能查看修改效果. 1.导入依赖,我用的是gradle,使用maven的可以去https://mvnrepository.com/寻找对应的依赖 compil ...

  4. C++面向对象程序设计学习笔记(7)

    模板与异常处理 模板的概念 模板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型作为参数. 模板分为函数模板和类模板,它们分别允许用户构造模板类和模板函数 函数模板与模板函数 函数模板实际 ...

  5. Tableau可视化操作

    1.地图显示 1.修改地理角色:“省份” 2.双击省份—绘制地图 3.显示销售额和利润额的情况—销售额(大小)+利润额(颜色) 4.修改显示颜色:两种方式 第一种方式:双击右边利润额图例— 第二种方式 ...

  6. SQL Server 迁移数据库 (二)分离和附加

    分离和附加其实比导入和导出,步骤要少一些,但是数据量大的话,跨服务器拷贝数据文件可能要慢一些 1. 分离数据库 这里最好选择断开链接,断开之前要确保你记得数据库的路径,一般默认都是C:\Program ...

  7. ASP.NET开发实战——(五)ASP.NET MVC & 分层

    上一篇文章简要说明了MVC所代表的含义并提供了详细的项目及其控制器.视图等内容的创建步骤,最终完成了一个简单ASP.NET MVC程序. 注:MVC与ASP.NET MVC不相等,MVC是一种开发模式 ...

  8. 你真的了解strtotime('X month')吗

    经常会有人被strtotime结合-1 month, +1 month, next month的时候搞得很困惑, 然后就会觉得这个函数有点不那么靠谱, 动不动就出问题. 用的时候就会很慌… 今天是20 ...

  9. @PostConstruct、@Autowired以及构造函数的执行顺序

    结论先行:构造函数 -> PostConstruct -> @Autowired 依次执行 由于项目需要启动时加载一个配置信息,所以想到了用@PostConstruct,如下所示: @Co ...

  10. Exceptionless in Docker on Linux 搭建及部署疑难杂症

    https://github.com/exceptionless/Exceptionless https://github.com/exceptionless/Exceptionless.UI 项目拉 ...