Conda教程+指令解析(详细)

0. 前言

conda是一个开源的包和环境管理系统,可以服务与任何语言,并广泛应用于python。

Anaconda是conda的一个分支,是一个包含很多软件包的数据科学平台.

Miniconda安装时不默认安装很多软件包。注意对miniconda来说,每一次打开命令行窗口,conda指令是不可用的,需要使用以下指令来用miniconda:

$ export PATH=$HOME/miniconda/bin:$PATH

这里以Anaconda为例:

1. 操作

首先,检查一下是否按安装了conda:

$ conda --version
conda 4.2.13

想看关于任何指令的文档,都可以通过输入conda指令加 --help来获取。例如,想知道关于 update 的ingoing:

conda update --help

一旦确认已经安装了conda,我们还要确认一下是否是最新装状态。

conda update conda
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ....
.Solving package specifications: .........

Package plan for installation in environment //anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-env-2.6.0            |                0          601 B
    ruamel_yaml-0.11.14        |           py27_0         184 KB
    conda-4.2.12               |           py27_0         376 KB
    ------------------------------------------------------------
                                           Total:         560 KB

The following NEW packages will be INSTALLED:

    ruamel_yaml: 0.11.14-py27_0

The following packages will be UPDATED:

    conda:       4.0.7-py27_0 --> 4.2.12-py27_0
    conda-env:   2.4.5-py27_0 --> 2.6.0-0
    python:      2.7.11-0     --> 2.7.12-1
    sqlite:      3.9.2-0      --> 3.13.0-0

Proceed ([y]/n)? y

Fetching packages ...
conda-env-2.6. 100% |################################| Time: 0:00:00 360.78 kB/s
ruamel_yaml-0. 100% |################################| Time: 0:00:00   5.53 MB/s
conda-4.2.12-p 100% |################################| Time: 0:00:00   5.84 MB/s
Extracting packages ...
[      COMPLETE      ]|###################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|###################################################| 100%
Linking packages ...
[      COMPLETE      ]|###################################################| 100%

conda将会对比conda版本然后让你知道哪些可以安装。它还会告诉你其他软件包将会自动升级。如果新的版本可以被升级了,根据指令升级到最新版本。

在这里,conda需要被升级,升级之后,一些依赖包也需要被更新。这里也有一个新的包需要被安装来更新conda。

2. 操作环境

利用conda,你可以为你的工程创建一个独立的python环境。这个环境是一系列可以被用到一个或多个工程中的软件包。Anaconda默认的环境是root 环境,这里包含了默认安装的软件包。

这里有两种方法创建conda环境:

1. 一个YAML格式的环境文件(environment.yml)

2. 人工指定软件包

用环境文件创建环境

YMAL是 YAML Ain’t Markup Language 的缩写, 它是对所有可用的数据序列化标准。

下面是一个环境文件(environment.yml)的例子:

在conda中可以用pip的方法安装软件:

name: playenv
channels:
- conda-forge
dependencies:
- python=3.6
- pip
- pip:
    - pyjokes

用下面的指令生成环境:

conda env create --file environment.yml
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata .........
Solving package specifications: ..........
Linking packages ...
[      COMPLETE      ]|###################################################################################################################################################################| 100%
Collecting pyjokes
  Downloading pyjokes-0.5.0-py2.py3-none-any.whl
Installing collected packages: pyjokes
Successfully installed pyjokes-0.5.0
#
# To activate this environment, use:
# > source activate playenv
#
# To deactivate this environment, use:
# > source deactivate playenv
#

使用环境的时候会根据系统不同会有所区别:

  • Linux, OS X: $ source activate playenv
  • Windows: $ activate playenv

回到root:

  • Linux, OS X: $ source deactivate
  • Windows: $ deactivate

人工指定软件包

我们用命令行窗口指定环境名字test_env,channel,软件包清单。下面是一个例子:

conda create -c conda-forge -n test_env python=2.7 numpy matplotlib pandas

conda会自动解决软件包之间的依赖等问题并创建一个包含这些软件包的新的环境。

如果你的命令行窗口显示如下,则表示你在当前环境中:

(test_env) D-69-91-135-15:env_files lsetiawan$

前面的(test_env)显示了你在哪个环境中

你还可以检查当前的激活的环境:

$ conda env list

test_env              *  //anaconda/envs/test_env
playenv                  //anaconda/envs/playenv
root                     //anaconda

分享环境给别人

通过命令行导出环境文件:

$ conda env export -f test_env.yml -n test_env

 导出的文件不能跨平台使用。

拷贝环境并删除环境

以下例子克隆 test_env 生成 live_env

$ conda create --name live_env --clone test_env

删除环境也很简单:

$ conda env remove -n live_env

3. 操作软件包

查看某环境下的软件包列表:

$ conda list -n test_env

# packages in environment at //anaconda/envs/test_env:
#
Using Anaconda Cloud api site https://api.anaconda.org
blas                      1.1                    openblas    conda-forge
ca-certificates           2016.9.26                     0    conda-forge
certifi                   2016.9.26                py27_0    conda-forge
cycler                    0.10.0                   py27_0    conda-forge
freetype                  2.6.3                         1    conda-forge
functools32               3.2.3.2                  py27_1    conda-forge
libgfortran               3.0.0                         0    conda-forge
...

有些软件包可能conda没有,但是在pypi却有.这里我们 以软件包 rasterio 为例在 anaconda cloud 中。

Anaconda Cloud 可以说是储存软件包的地方。它由channels/owners组成,每个channel都包含一个到多个conda软件包。

这里我们将使用 conda-forge(常用的可靠的channel) 里的 rasterio:

你也可以通过命令行搜索该软件包:

$ anaconda search rasterio

Using Anaconda Cloud api site https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
     Name                      |  Version | Package Types   | Platforms      
     ------------------------- |   ------ | --------------- | ---------------
     IOOS/rasterio             |    1.0a2 | conda           | linux-64, win-32, win-64, osx-64
     Terradue/rasterio         |   0.32.0 | conda           | linux-64       
                                          : Fast and direct raster I/O for use with Numpy and SciPy
     anaconda/rasterio         |   0.36.0 | conda           | linux-64, win-32, win-64, linux-32, osx-64
     conda-forge/rasterio      |    1.0a2 | conda           | linux-64, win-32, win-64, osx-64
                                          : Rasterio reads and writes geospatial raster datasets
     dharhas/rasterio          |   0.23.0 | conda           | win-64         
                                          : Rasterio reads and writes geospatial raster datasets.
     erdc/rasterio             |   0.23.0 | conda           | win-64         
                                          : Rasterio reads and writes geospatial raster datasets.
     jesserobertson/rasterio   |   0.23.0 | conda           | linux-64, linux-32, osx-64
     jhamman/rasterio_to_xarray | 2016.03.16-1558 | ipynb           |                
                                          : IPython notebook
     krisvanneste/rasterio     |   0.26.0 | conda           | win-64         
     ocefpaf/rasterio          |   0.19.1 | conda           | linux-64, osx-64
     omgarcia/rasterio         |   0.25.0 | conda           | linux-64       
     pypi/rasterio             |   0.13.2 | pypi            |                
                                          : Fast and direct raster I/O for Python programmers who use Numpy
     robintw/rasterio          |   0.35.1 | conda           | osx-64         
                                          : Rasterio reads and writes geospatial raster datasets
     sgillies/rasterio         |     0.15 | conda           | osx-64         
     ztessler/rasterio         |   0.31.0 | conda           | osx-64         
                                          : Fast and direct raster I/O for use with Numpy and SciPy
Found 15 packages

We will install version 0.35 of rasterio from conda-forge into test_env in this example.

$ conda config --add channels conda-forge
$ conda install -c conda-forge rasterio=0.35

删除软件包:

$ conda remove -n test_env rasterio

Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata .........
Solving package specifications: ..........

Package plan for package removal in environment //anaconda/envs/test_env:

The following packages will be REMOVED:

    rasterio: 0.35.1-np111py27_1 conda-forge

Proceed ([y]/n)? y

Unlinking packages ...
[      COMPLETE      ]|#######################################################################################################| 100%

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值