Linux安裝Anaconda和TensorFlow

眾所周知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)很方便地下載到安裝包:

官網(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'

遨游去吧。


查看作者首頁(yè)

參考文章:
Anaconda使用總結(jié)
Anaconda+Tensorflow環(huán)境安裝與配置
Conda工具使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末济瓢,一起剝皮案震驚了整個(gè)濱河市荠割,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旺矾,老刑警劉巖涨共,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宠漩,居然都是意外死亡举反,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門扒吁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)火鼻,“玉大人,你說(shuō)我怎么就攤上這事雕崩】鳎” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵盼铁,是天一觀的道長(zhǎng)粗蔚。 經(jīng)常有香客問我,道長(zhǎng)饶火,這世上最難降的妖魔是什么鹏控? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮肤寝,結(jié)果婚禮上当辐,老公的妹妹穿的比我還像新娘。我一直安慰自己鲤看,他們只是感情好缘揪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般找筝。 火紅的嫁衣襯著肌膚如雪蹈垢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天袖裕,我揣著相機(jī)與錄音耘婚,去河邊找鬼。 笑死陆赋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嚷闭。 我是一名探鬼主播攒岛,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胞锰!你這毒婦竟也來(lái)了灾锯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嗅榕,失蹤者是張志新(化名)和其女友劉穎顺饮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凌那,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兼雄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帽蝶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赦肋。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖励稳,靈堂內(nèi)的尸體忽然破棺而出佃乘,到底是詐尸還是另有隱情,我是刑警寧澤驹尼,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布趣避,位于F島的核電站,受9級(jí)特大地震影響新翎,放射性物質(zhì)發(fā)生泄漏程帕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一地啰、第九天 我趴在偏房一處隱蔽的房頂上張望丑瞧。 院中可真熱鬧液样,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春括饶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背来涨。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工图焰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蹦掐。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓技羔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親卧抗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子藤滥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容