引
眾所周知Python常用的版本有2.x和3.x眶诈,常常會(huì)引起版本問題铃在。由于我在Linux系統(tǒng)中已經(jīng)安裝有Python3.x和對(duì)應(yīng)的TensorFlow儿咱,現(xiàn)在遇到需要跑在Python2.x下的TensorFlow工程時(shí)颁独,就很麻煩翘单,因此可以用Anaconda來(lái)建立一個(gè)獨(dú)立的小環(huán)境來(lái)另外安裝Python2.x及其對(duì)應(yīng)的TensorFlow來(lái)跑這個(gè)工程吨枉。
Anaconda
Anaconda(官網(wǎng))是什么?其實(shí)就是一個(gè)“開源包管理系統(tǒng)和環(huán)境管理系統(tǒng)”哄芜,主要用于解決我遇到的上述問題貌亭,需要安裝多個(gè)版本的軟件包及其依賴關(guān)系,并在它們之間輕松切換认臊。它適用于Linux圃庭,OS X和Windows,是為Python程序創(chuàng)建的失晴,但可以打包和分發(fā)任何軟件剧腻。所以雖然我這里主要用于Python,但其實(shí)也可以用于其他很多環(huán)境涂屁。
對(duì)應(yīng)于Python2和Python3书在,Anaconda也有兩種版本,分別為Anaconda2和Anaconda3拆又。兩個(gè)版本可以在官網(wǎng)很方便地下載到安裝包:
選擇系統(tǒng)后下載對(duì)應(yīng)的包即可儒旬,如果不確定自己的系統(tǒng)情況栏账,可以通過命令查看:
$ uname -a
其實(shí)還有一種體積更小的版本叫做Miniconda,區(qū)別在于:
Miniconda是一個(gè)小的“引導(dǎo)”版本栈源,只包括conda挡爵,Python和它們依賴的包。 超過720個(gè)科學(xué)軟件包及其依賴項(xiàng)可以使用“conda install”命令從Continuum存儲(chǔ)庫(kù)單獨(dú)安裝甚垦。
Anaconda包括conda茶鹃,conda-build,Python和超過150個(gè)自動(dòng)安裝的科學(xué)包及其依賴項(xiàng)制轰。 與Miniconda一樣前计,可以使用“conda install”命令單獨(dú)安裝超過250個(gè)額外的科學(xué)軟件包。
下載包后會(huì)得到一個(gè)名為類似“Anaconda2-5.2.0-Linux-x86_64.sh”的文件垃杖,使用命令:
$ bash Anaconda2-5.2.0-Linux-x86_64.sh #Python 2.7版本
即可進(jìn)行安裝男杈,當(dāng)然如果下載的是其他版本的Anaconda,替換掉安裝包名即可调俘。
在安裝過程中伶棒,首先會(huì)給你看許可申明,這里可以一直按回車彩库,不用擔(dān)心后面會(huì)漏掉什么命令肤无。接著會(huì)問你是否同意許可,輸入yes同意骇钦。然后會(huì)詢問你安裝路徑宛渐,這里建議直接回車安裝到默認(rèn)路徑(會(huì)在用戶根目錄下生成一個(gè)anaconda2的文件夾,類似 ~/anaconda2)眯搭。最后會(huì)問你是否將Anaconda安裝路徑加入到環(huán)境變量(.bashrc)中窥翩,輸入yes,這樣以后在終端中輸入python即可直接進(jìn)入Anaconda的Python版本:
$ python --version
Python 2.7.15 :: Anaconda, Inc.
這里由于我原本就安裝有Python2.x和Python3.x鳞仙,擔(dān)心這里會(huì)影響我的原有版本寇蚊,就輸入的no,但這樣的話會(huì)導(dǎo)致你無(wú)法隨意通過conda命令來(lái)操作anaconda棍好,最后我還是將其加入了環(huán)境變量仗岸,如果上一步輸入了no,可以通過下面的命令將其加入環(huán)境變量:
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借笙,根據(jù)版本不同扒怖,也可能是~/anaconda3/bin
$ echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc # 更新bashrc以立即生效
$ conda --version
conda 4.5.4
至此,anaconda安裝完畢业稼。
這里再提一嘴conda和anaconda的關(guān)系:
這里先解釋下conda盗痒、anaconda這些概念的差別。conda可以理解為一個(gè)工具盼忌,也是一個(gè)可執(zhí)行命令积糯,其核心功能是包管理與環(huán)境管理。包管理與pip的使用類似谦纱,環(huán)境管理則允許用戶方便地安裝不同版本的python并可以快速切換看成。Anaconda則是一個(gè)打包的集合,里面預(yù)裝好了conda跨嘉、某個(gè)版本的python川慌、眾多packages、科學(xué)計(jì)算工具等等祠乃,所以也稱為Python的一種發(fā)行版梦重。其實(shí)還有Miniconda,顧名思義亮瓷,它只包含最基本的內(nèi)容——python與conda琴拧,以及相關(guān)的必須依賴項(xiàng),對(duì)于空間要求嚴(yán)格的用戶嘱支,Miniconda是一種選擇蚓胸。
關(guān)于Anaconda的常用命令有:
$ # 創(chuàng)建一個(gè)名為tensotflow的環(huán)境,指定Python版本是2.7(不用管是2.7.x除师,conda會(huì)為我們自動(dòng)尋找2.7.x中的最新版本)
$ conda create --name tensotflow python=2.7 # 這里的--name可以簡(jiǎn)化為-n
$ source activate tensotflow # 安裝好后沛膳,使用activate激活某個(gè)環(huán)境
$ # 激活后,會(huì)發(fā)現(xiàn)terminal輸入的地方多了tensotflow 的字樣
$ # 此時(shí)汛聚,可以安裝和操作一些包
$ source deactivate tensotflow # 如果想返回普通環(huán)境锹安,運(yùn)行
$ conda remove --name tensotflow --all # 刪除一個(gè)已有的環(huán)境
$ # conda的包管理類似pip
$ conda install scipy # conda安裝scipy
$ conda list # 查看已經(jīng)安裝的packages
$ conda list -n tensotflow # 查看某個(gè)指定環(huán)境的已安裝包
$ conda search numpy # 查找package信息
$ conda install -n tensotflow numpy # 安裝某個(gè)指定環(huán)境的package
$ # 如果不用-n指定環(huán)境名稱,則被安裝在當(dāng)前活躍環(huán)境倚舀,也可以通過-c指定通過某個(gè)channel安裝
$ conda update -n tensotflow numpy # 更新package
$ conda remove -n tensotflow numpy # 刪除package
安裝TensorFlow
現(xiàn)在我們就先創(chuàng)建一個(gè)新的Anaconda環(huán)境來(lái)安裝和使用我們的TensorFlow叹哭。
首先創(chuàng)建python2.7下的名為tensorlfow的環(huán)境:
$ conda create --name tensotflow python=2.7
此時(shí)anaconda會(huì)檢查并提示你需要在虛擬環(huán)境安裝一些包,輸入y確認(rèn)即可瞄桨。環(huán)境創(chuàng)建好就會(huì)提醒你:
# To activate this environment, use:
# > source activate tensorflow
#
# To deactivate an active environment, use:
# > source deactivate
第一個(gè)命令用于進(jìn)入(激活)名為tensorflow的環(huán)境话速,第二個(gè)命令用于退出該環(huán)境,注意這里我們只是命名該環(huán)境為tensorflow芯侥,真正的TensorFlow還沒安裝呢泊交。
現(xiàn)在我們進(jìn)入該環(huán)境并安裝TensorFlow。
$ source activate tensorflow
(tensorflow) $
$ # 注意進(jìn)入環(huán)境后所有的命令錢都會(huì)自帶一個(gè)(tensorflow)表示你在該環(huán)境柱查。
然后我們使用“anaconda search -t conda tensorflow”命令來(lái)查詢conda有哪些TensorFlow的安裝包(其實(shí)此時(shí)也可以通過TensorFlow官網(wǎng)的各種傳統(tǒng)方法安裝TensorFlow廓俭,但既然我們已經(jīng)創(chuàng)建了Anaconda,而anaconda本身就是個(gè)包管理器唉工,那不如就利用它來(lái)方便安裝)研乒。輸入命令后會(huì)出現(xiàn)一大堆安裝包版本,類似下面這樣:
(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
會(huì)有一個(gè)大表格該給你展現(xiàn)淋硝,根據(jù)你的需求來(lái)選擇一個(gè)即可雹熬,比如我選擇名為“jjh_ppc64le/tensorflow-gpu”的版本宽菜,那么使用命令來(lái)查看細(xì)節(jié):
(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
其實(shí)上面就已經(jīng)告訴你怎么安裝了,使用最后一行命令即可竿报。
$ conda install --channel https://conda.anaconda.org/jjh_ppc64le tensorflow-gpu
上面可以看到它其實(shí)給出了兩個(gè)版本铅乡,如果想安裝其中一個(gè)特定版本,可以指定:
$ conda install --channel https://conda.anaconda.org/jjh_ppc64le tensorflow-gpu=1.1.0
anaconda同樣會(huì)為你檢查你缺少哪些包烈菌,并詢問你是否安裝阵幸,輸入y確認(rèn)即可。
至此TensorFlow就安裝完成了芽世,如果想檢查是否安裝成功挚赊,可以進(jìn)入python來(lái)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 # 此時(shí)不報(bào)錯(cuò)則表示安裝成功了
>>> tf.__version__ # 查看安裝的TensorFlow版本
'1.10.0'
遨游去吧。
參考文章:
Anaconda使用總結(jié)
Anaconda+Tensorflow環(huán)境安裝與配置
Conda工具使用