CONDA使用入门

  • A+
所属分类:Script

 

近来已经习惯使用 Continuum Analytics 公司的Conda产品作为我的主要开发工具箱. Conda提供比隔离环境包 virtualenv 和 python 版本切换包 pyenv 更多, 本文就是带你进行基础环境的搭建和 miniconda(一个轻量级conda的发布包) 的使用.

Conda简介

先介绍一些名词:

  • Continuum Analytics: 开发和发布 conda/miniconda/anaconda 包的公司.
  • Conda: 命令行工具, 类似 pip 或者 virtualenv.
  • Miniconda: conda 的一个轻量级的发布包, 只包含最基础的特性.
  • Anaconda: 一个更丰富的conda包, 包含科学计算python用户的常用包, 这个包在miniconda上层.

Conda其实做的比简单的一个python版本切换和环境隔离的要多, 它就是它自己! 它是一个全新的包管理系统, 包资源库, 它可以管理更多. 在使用conda的同时你还是可以用pip来安装包, 本文就是做一些基础层级的使用的介绍.

安装

官网的安装介绍文档在这里

Conda支持各操作系统的安装, 这里演示安装miniconda, 到官网下载安装包, 在Mac平台下是一个shell文件, 在官网的下载地址里, 注意到有python 2 和python 3 的安装版本, 其实这个不太重要, 因为conda把python也当做是一个可安装的包, 你在安装好conda后依然可以切换python的版本.

下载好后直接执行这个文件

替换 Virtualenv

Virtualenv 是一个帮你创建隔离环境的包, 在隔离环境里可以使用pip安装包. 同样的功能在conda中通过 conda create 和 conda env 两个命令来实现的.

创建隔离环境

要创建一个运行flask应用的环境:

上面这个命令会创建一个名叫myflaskapp的环境, 并且在里面安装好flask包. 要注意的是conda create命令要求在创建新环境的时候必须至少要指定一个要安装的包, 如果没有什么具体的包想指定的可以简单传入python就好了, 如下:

运行好上面的命令, 你会看到如下的提示, 它教你如何激活和取消这个隔离环境:

用命令 source activate myflaskapp 激活环境后, 可以使用 conda list 命令来查看已经安装好的包:

注意到上面第三列的 py34_0 所在的行才是安装好的python包, 其他的(python, readline, sqlite, tk, xz, and zlib)都不是python的包. 也可以通过 pip list 来查看安装好的python包.

安装包

Conda提供了完整的pip和pypi的替代, 但是你依然可以使用pip来正常安装包. 我们继续我们的flask例子, 我们依次使用pip和conda来安装.

上面可以看到不是通过pip安装的已经移除了<pip>的标志, 说明这些包是从 anaconda.org 网站上下载的. 如果想知道包的具体渠道来源, 可以执行下面的配置命令:

上面的命令会修改你的home文件夹下面的 .condarc 配置文件.

现在执行conda list就可以清楚的知道每个包的下载渠道, defaults是Continuum Analytics公司的官网渠道.

pip install vs conda install

pip install

  • 优点
    • Python 包的标准选择.
    • 大多数包都先发布到这.
    • 包几乎都是最新的版本.
  • 缺点
    • 安装科学计算包耗时太长, 经常还很多问题.

conda install

  • 优点
    • 和conda集成很好.
    • 安装科学计算包很快很方便.
  • 缺点
    • 包的更新不如pip资源库那么及时.
    • 有些在pip上的包在anaconda.org上没有.

创建 Requirements 文件

文件 requirements.txt 是virtualenv用来存储依赖相应版本的包的列表文件. Conda也有相应的文件, 叫做 environment.yaml, 我们能从一个conda环境中同时创建出两个文件. 如下的conda环境

创建 requirements.txt文件:

创建 environment.yaml文件:

替换pyenv

pyenv是一个让你在一个系统里可以在不同版本的python中安装和切换的包. 通过conda环境也是可以做到这一点的.

创建环境

上面两个命令会创建分别安装python3和python2的环境. 我一般使用其中一个作为的默认环境, 并且把 source activate py3 命令加入我的启动项中, 在某个隔离环境中去执行我的python任务. 对于不同的项目我也会创建不同的隔离环境.

翻译自:

用 Continuum Analytics Conda 作为 virtualenv, pyenv 和其他的替代

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: