众所周知Python常用的版本有2.x和3.x,常常会引起版本问题。由于我在Linux系统中已经安装有Python3.x和对应的TensorFlow,现在遇到需要跑在Python2.x下的TensorFlow工程时,就很麻烦,因此可以用Anaconda来建立一个独立的小环境来另外安装Python2.x及其对应的TensorFlow来跑这个工程。

Anaconda


Anaconda(官网)是什么?其实就是一个“开源包管理系统和环境管理系统”,主要用于解决我遇到的上述问题,需要安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。它适用于Linux,OS X和Windows,是为Python程序创建的,但可以打包和分发任何软件。所以虽然我这里主要用于Python,但其实也可以用于其他很多环境。

对应于Python2和Python3,Anaconda也有两种版本,分别为Anaconda2和Anaconda3。两个版本可以在官网很方便地下载到安装包:




选择系统后下载对应的包即可,如果不确定自己的系统情况,可以通过命令查看:

$ uname -a 

其实还有一种体积更小的版本叫做Miniconda,区别在于:

Miniconda是一个小的“引导”版本,只包括conda,Python和它们依赖的包。 超过720个科学软件包及其依赖项可以使用“conda install”命令从Continuum存储库单独安装。

Anaconda包括conda,conda-build,Python和超过150个自动安装的科学包及其依赖项。 与Miniconda一样,可以使用“conda install”命令单独安装超过250个额外的科学软件包。

下载包后会得到一个名为类似“Anaconda2-5.2.0-Linux-x86_64.sh”的文件,使用命令:

$ bash Anaconda2-5.2.0-Linux-x86_64.sh #Python 2.7版本 

即可进行安装,当然如果下载的是其他版本的Anaconda,替换掉安装包名即可。

在安装过程中,首先会给你看许可申明,这里可以一直按回车,不用担心后面会漏掉什么命令。接着会问你是否同意许可,输入yes同意。然后会询问你安装路径,这里建议直接回车安装到默认路径(会在用户根目录下生成一个anaconda2的文件夹,类似 ~/anaconda2)。最后会问你是否将Anaconda安装路径加入到环境变量(.bashrc)中,输入yes,这样以后在终端中输入python即可直接进入Anaconda的Python版本:

$ python --version Python 2.7.15 :: Anaconda, Inc.

这里由于我原本就安装有Python2.x和Python3.x,担心这里会影响我的原有版本,就输入的no,但这样的话会导致你无法随意通过conda命令来操作anaconda,最后我还是将其加入了环境变量,如果上一步输入了no,可以通过下面的命令将其加入环境变量:

Do you wish the installer to prepend the Anaconda2 install location
to PATH in your /usr/local/app/.bashrc ? [yes|no]
[no] >>> no

You may wish to edit your .bashrc to prepend the Anaconda2 install location to PATH:

export PATH=/usr/local/app/anaconda2/bin:$PATH

Thank you for installing Anaconda2!  $ conda info Hey! No command 'conda' found, did you mean 'cone'?  $ # 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin $ echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc  $ source ~/.bashrc # 更新bashrc以立即生效  $ conda --version  conda 4.5.4

至此,anaconda安装完毕。

这里再提一嘴conda和anaconda的关系:

这里先解释下conda、anaconda这些概念的差别。conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

关于Anaconda的常用命令有:

$ # 创建一个名为tensotflow的环境,指定Python版本是2.7(不用管是2.7.x,conda会为我们自动寻找2.7.x中的最新版本) $ conda create --name tensotflow python=2.7 # 这里的--name可以简化为-n  $ source activate tensotflow # 安装好后,使用activate激活某个环境 $ # 激活后,会发现terminal输入的地方多了tensotflow 的字样  $ # 此时,可以安装和操作一些包  $ source deactivate tensotflow # 如果想返回普通环境,运行  $ conda remove --name tensotflow --all # 删除一个已有的环境  $ # conda的包管理类似pip  $ conda install scipy # conda安装scipy  $ conda list # 查看已经安装的packages  $ conda list -n tensotflow # 查看某个指定环境的已安装包  $ conda search numpy # 查找package信息  $ conda install -n tensotflow numpy # 安装某个指定环境的package $ # 如果不用-n指定环境名称,则被安装在当前活跃环境,也可以通过-c指定通过某个channel安装  $ conda update -n tensotflow numpy # 更新package  $ conda remove -n tensotflow numpy # 删除package 

安装TensorFlow

现在我们就先创建一个新的Anaconda环境来安装和使用我们的TensorFlow。

首先创建python2.7下的名为tensorlfow的环境:

$ conda create --name tensotflow python=2.7 

此时anaconda会检查并提示你需要在虚拟环境安装一些包,输入y确认即可。环境创建好就会提醒你:

# To activate this environment, use: # > source activate tensorflow # # To deactivate an active environment, use: # > source deactivate 

第一个命令用于进入(激活)名为tensorflow的环境,第二个命令用于退出该环境,注意这里我们只是命名该环境为tensorflow,真正的TensorFlow还没安装呢。

现在我们进入该环境并安装TensorFlow。

$ source activate tensorflow (tensorflow) $ $ # 注意进入环境后所有的命令钱都会自带一个(tensorflow)表示你在该环境。 

然后我们使用“anaconda search -t conda tensorflow”命令来查询conda有哪些TensorFlow的安装包(其实此时也可以通过TensorFlow官网的各种传统方法安装TensorFlow,但既然我们已经创建了Anaconda,而anaconda本身就是个包管理器,那不如就利用它来方便安装)。输入命令后会出现一大堆安装包版本,类似下面这样:

(tensorflow) $ anaconda search -t conda tensorflow

Using Anaconda API: https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
     Name                      |  Version | Package Types   | Platforms       | Builds    
     ------------------------- |   ------ | --------------- | --------------- | ----------
     GlaxoSmithKline/tensorflow |   0.12.0 | conda           | linux-64        | py27hb0d0e74_0
     HCC/tensorflow            |    1.7.0 | conda           | linux-64        | py34_1, py27_1

会有一个大表格该给你展现,根据你的需求来选择一个即可,比如我选择名为“jjh_ppc64le/tensorflow-gpu”的版本,那么使用命令来查看细节:

(tensorflow) $ anaconda show jjh_ppc64le/tensorflow-gpu
Using Anaconda API: https://api.anaconda.org
Name:    tensorflow-gpu
Summary: TensorFlow is a machine learning library
Access:  public
Package Types:  conda
Versions:
   + 1.1.0
   + 1.2.1

To install this package with conda run:
     conda install --channel https://conda.anaconda.org/jjh_ppc64le tensorflow-gpu
其实上面就已经告诉你怎么安装了,使用最后一行命令即可。


$ conda install --channel https://conda.anaconda.org/jjh_ppc64le tensorflow-gpu 

上面可以看到它其实给出了两个版本,如果想安装其中一个特定版本,可以指定:

$ conda install --channel https://conda.anaconda.org/jjh_ppc64le tensorflow-gpu=1.1.0 

anaconda同样会为你检查你缺少哪些包,并询问你是否安装,输入y确认即可。

至此TensorFlow就安装完成了,如果想检查是否安装成功,可以进入python来import试一试:

(tensorflow) $ python
Python 2.7.15 |Anaconda, Inc.| (default, May  1 2018, 23:32:55) 
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf # 此时不报错则表示安装成功了 >>> tf.__version__ # 查看安装的TensorFlow版本 '1.10.0'

遨游去吧。

搬运自简述,作者信息如下:
作者:Cloudox_
链接:https://www.jianshu.com/p/d01aabf7bd65
来源:简书