Web安全之强化学习与GAN
上QQ阅读APP看书,第一时间看更新

2.3 Anaconda

Anaconda是一个用于科学计算的Python开发平台,支持Linux、Mac和Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。Anaconda利用conda命令来进行包和环境的管理,并且已经包含了Python和相关的配套工具。如图2-1所示,Anaconda集成了大量的机器学习库以及数据处理必不可少的第三方库,比如NumPy、SciPy、Scikit-Learn以及TensorFlow等。

图2-1 Anaconda框架https://www.anaconda.com/what-is-anaconda/

Anaconda的安装非常方便,如图2-2所示,从其官网的下载页面选择对应的安装包,以我的Mac本为例,选择macOS对应的图形化安装版本。

图2-2 Anaconda下载页面https://www.anaconda.com/download/#macos

点击安装包,选择安装的硬盘,通常Mac本也只有一块硬盘,使用默认安装即可(见图2-3)。

图2-3 Anaconda安装界面

一路使用默认配置进行安装,安装完成后出现如图2-4所示的界面,表明安装成功。

图2-4 Anaconda安装结束界面

使用如下命令查看当前用户的profile文件的内容:

    cat ~/.bash_profile

可以发现,在当前用户的profile文件的最后增加了如下内容,表明已经将Anaconda的bin目录下的命令添加到了PATH变量中,可以像使用系统命令一样直接使用Anaconda的命令行工具代码如下:

    # added by Anaconda2 5.0.0 installer
    export PATH="/anaconda2/bin:$PATH"

Anaconda强大的包管理以及多种Python环境并存使用主要依赖于conda命令,常用的conda命令列举如下:

    # 创建一个名为python27的环境,指定Python版本是2.7
    conda create --name python27 python=2.7
    # 查看当前环境下已安装的包
    conda list
    # 查看某个指定环境的已安装包
    conda list -n python27
    # 查找package信息
    conda search numpy
    # 安装package
    conda install -n python27 numpy
    # 更新package
    conda update -n python27 numpy
    # 删除package
    conda remove -n python27 numpy

假设我们已经创建一个名为python27的环境,指定Python版本是2.7,激活该环境的方法如下:

    source activate python27

如果要退出该环境,命令如下所示:

    source deactivate

在python27的环境下查看Python版本,果然是2.7版本:

    maidou:3book liu.yan$ source activate python27
    (python27) maidou:3book liu.yan$
    (python27) maidou:3book liu.yan$ python
    Python 2.7.14 |Anaconda, Inc.| (default, Oct  5 2017, 02:28:52)
    [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

查看python27环境下默认安装了哪些包,为了避免显示内容过多,过滤前6行查看:

    conda list | head -6
    # packages in environment at /anaconda2/envs/python27:
    #
    ca-certificates            2017.08.26           ha1e5d58_0
    certifi                    2017.7.27.1      py27h482ffc0_0
    libcxx                     4.0.1                 h579ed51_0
    libcxxabi                  4.0.1                 hebd6815_0

统计包的个数,除去2行的无关内容,当前环境下有16个包:

    conda list | wc -l
          18

查看目前一共具有几个环境,发现除了系统默认的root环境,又多出了我们创建的python27环境:

    conda info --envs
    # conda environments:
    #
    python27                  /anaconda2/envs/python27
    root                   *  /anaconda2

在python27环境下安装Anaconda默认的全部安装包,整个安装过程会比较漫长,速度取决于你的网速。代码如下:

    conda install anaconda
    Fetching package metadata ...........
    Solving package specifications: .
    Package plan for installation in environment /anaconda2/envs/python27:

继续统计包的个数,除去2行的无关内容,当前环境下已经有238个包了:

    conda list | wc -l
          240

Anaconda默认安装的第三方包里没有包含TensorFlow和Keras,需要使用命令手工安装,以TensorFlow为例,可以使用conda命令直接安装:

    conda install tensorflow

同时也可以使用pip命令直接安装:

    pip install tensorflow

本书一共创建了两个环境,分别是python27和python36,顾名思义对应的Python版本分别为2.7和3.6,用于满足不同案例对Python版本的不同要求。