电竞比分网-中国电竞赛事及体育赛事平台

分享

Python配置第三方庫Theano的曲折之路

 imelee 2017-02-15

  Theano是Python的一個深度學(xué)習(xí)的第三方庫,今天有同學(xué)問我怎樣配置。OK,既然有需求,我就花了半天時間研究它,并完成了windows下32位和64位系統(tǒng)下的配置。這里在配置的過程中我走了一些彎路,在這篇文章中我會將我在配置過程中遇到的問題、出現(xiàn)的錯誤、解決的方法都完整的列出來,供大家參考,并列出直接簡潔的配置方法。

  一、基本情況

  Theano算是Python中配置相對復(fù)雜的庫了,這里先對目前的配置需求進(jìn)行一個基本說明。

  1、Python配置第三方庫的基本方法

  Python配置第三方庫主要有以下幾種方法:

 ?。?)Pip自動安裝

  Pip是Python安裝第三方庫的首選方法,簡單快捷,系統(tǒng)自動分析安裝需求并從Pipy下載相應(yīng)的庫文件。安裝Python編譯器后會默認(rèn)安裝Pip工具,pip工具安裝第三方庫非常簡單,只需在命令提示符窗口中輸入“pip install 庫名稱”即可。

  在使用Pip工具時首先需要配置相關(guān)環(huán)境變量。假設(shè)我們將Python裝在C盤根目錄下:

  此時需要將該目錄以及目錄下的Scripts文件夾的路徑添加到環(huán)境變量中:

  接下來我們打開命令提示符窗口,首先需要對Pip版本進(jìn)行更行,更新到最新版本方可使用,更新命令為“pip install --upgrade pip”:

  更新完成后,即可使用pip工具進(jìn)行第三方庫的安裝。這里有一個問題需要注意,就是Python必須安裝在C盤下才能完成版本更新,之前安裝在D盤時,在版本更新的過程中會一直顯示文件移動方面的錯誤,這個BUG目前還沒有解決,好在Python本身并不大,且相對簡潔,就暫且裝在C盤了。

  接下來就可以使用pip進(jìn)行自動安裝,非常簡潔,直接“pip install 庫名稱”即可:

  這里我們已經(jīng)安裝好了Theano,因此Pip會給出提示信息,否則會自動安裝。

  (2)Pip手動安裝

  所謂Pip手動安裝,是指我們手動下載第三方庫的安裝文件,然后使用pip安裝。這里提供第三庫安裝文件的下載地址:第三方庫,下載時注意版本匹配即可。

  注意這里的安裝文件都是whl格式的,而非exe或者msi格式,也就意味著下載得到的安裝文件只能用pip工具安裝,直接雙擊是行不通的。

  假設(shè)這里我們用pip手動安裝scipy模塊。在剛才的地址中下載scipy的安裝文件,這里選擇win32、CP34(Python3.4)版本的安裝文件:

  下載完成后,為了方便,將文件放在C盤根目錄下,然后在命令提示符界面進(jìn)入C盤文件夾下,使用pip命令進(jìn)行安裝:

  這里由于之前已經(jīng)安裝過numpy模塊,pip會給出提示。若之前未安裝相關(guān)模塊,pip會在此處進(jìn)行自動安裝。不過這里需要強(qiáng)調(diào)的一點是使用pip進(jìn)行手動安裝時一定要先進(jìn)入安裝文件所在的目錄,否則pip將無法找到安裝源。

 ?。?)使用exe文件安裝

  對于一些常用的第三方庫,在如下地址可能會找到相應(yīng)的exe版本的安裝文件:exe安裝文件地址,如果能在網(wǎng)站上搜索到相關(guān)的exe版本安裝文件,下載下來直接雙擊安裝皆即可,當(dāng)然同樣需要注意版本匹配的問題,而且這里貌似沒有64位版本的安裝文件。

  2、安裝環(huán)境需求

  在安裝Theano庫之前,需要以下擴(kuò)展庫的支持:numpy(包含BLAS,ATLAS等)、scipy、libpython;需要g++支持(通過mingw安裝),這里g++需要區(qū)分32位和64位。我的電腦是win7,64位,不過我的Python是32位的(64位windows是可以安裝32位Python的)。這里由于我們的Python是32位的,因此以下安裝的所有模塊都是32位版本。

  二、開始安裝

  1、安裝第三方庫

  首先安裝numpy。經(jīng)過測試以上三種方法都可以安裝numpy模塊,但這里必須采用第二種,也就是手動下載numpy模塊來用pip安裝。原因是其他兩種方法安裝numpy模塊后,還需要手動安裝BLAS、ATLAS等等,而且這兩個模塊都是需要進(jìn)行編譯才能安裝的,非常麻煩,而下載得到的numpy貌似封裝了這幾個繁瑣的模塊,因此能節(jié)省很多功夫。

  安裝完成之后繼續(xù)安裝scipy模塊,這里我們同樣推薦使用第二種方法手動安裝,方便快捷,不受網(wǎng)速制約。使用pip自動安裝時經(jīng)常會下載失敗什么的。

  然后在安裝libpython模塊,同上。

  以上這三個模塊的安裝過程都是完全相同的,這里稍作總結(jié):在Python安裝第三方模塊時推薦手動安裝,方便快捷。使用pip自動安裝時會受防火墻、網(wǎng)速等各種各樣的因素限制,安裝的成功率低。當(dāng)然如果不能找到對應(yīng)的whl安裝文件(例如nose模塊),就只能使用pip進(jìn)行自動在線安裝了。這里不推薦去sourceforge去找exe版,一是exe版的安裝文件不全面;二是exe版安裝的庫與pip安裝的庫并不完全相同,時間長了可能會引發(fā)未知的兼容性問題;三是exe版安裝文件沒有64位的。

  安裝完以上擴(kuò)展庫后,可以安裝theano庫了。這里必須使用pip自動安裝了,因為找不到對應(yīng)的whl版本和exe版本,好在pip很給力,自動安裝成功:

  這里在自動安裝之前Pip會先檢查numpy和scipy的安裝情況,如果沒有正確安裝的話pip會先進(jìn)行numpy和scipy的安裝(當(dāng)然我們不希望它這樣做),然后安裝theano,大約五分鐘左右,下載完成,安裝成功。

  2、安裝g++

  首先,這里提供一個g++的下載地址:g++

  安裝完theano后,我們先測試一下:

  很明顯,Python提示我們沒有g(shù)++,接下來我們安裝一個。

  那么問題來了,我是64位windows,32位Python,那我們應(yīng)該裝64位的g++還是32位的g++呢?經(jīng)過嘗試,需要裝64位的g++。想想也有道理,因為g++和Python并不是綁定的。

  這里給出64位MinGw的下載地址:64位MinGw。下載完成后,雙擊進(jìn)行安裝:

  單擊next,在配置界面選擇如下,單擊next:

  由于是編譯器,默認(rèn)安裝在C盤,單擊next:

  這個過程會相對比較漫長,大約十分鐘左右:

  單擊next,安裝完成。接下來將路徑"C:\Program Files (x86)\mingw-w64\i686-5.2.0-posix-dwarf-rt_v4-rev1\mingw32\bin"添加到環(huán)境變量中(不同計算機(jī)的路徑可能稍有不同),此時再次測試theano,安裝成功:

  三、測試theano

  僅僅是import語句的話大家可能還不太確信theano庫安裝的正確性,接下來我們運行其中的一個小的測試函數(shù)。不過這里需要先安裝nose模塊,推薦使用pip進(jìn)行自動安裝:

  網(wǎng)速流暢的話應(yīng)該幾秒鐘即可安裝完成,再次測試theano:

  說明theano安裝順利完成,這里給出的警告是提示我們尚未進(jìn)行GPU的配置,這點以后在說,因為theano是支持CPU的。

  四、32位系統(tǒng)下的配置

  剛才說的是在64位系統(tǒng)下配置32位python,接下來說說如何在32位系統(tǒng)下配置32位python的theano庫。首先安裝numpy、scipy、libpython、theano這四個庫,這些庫的安裝和上面說的安裝方法完全一樣(因為都是32位python)。唯一不同的就是g++的安裝,顯然32位系統(tǒng)需要安裝32位的g++:

  雙擊進(jìn)入安裝界面,單擊next,選擇下載最新版本選項:

  單擊next,接受協(xié)議,next,指定安裝路徑(這里同樣為C盤):

  單擊next,選擇C和C++編譯器:

  單擊next,單擊install,開始安裝,注意這里的安裝是在dos界面下自動完成的:

  安裝完成后,將安裝目錄下的bin文件夾的路徑添加到環(huán)境變量中,32位的g++安裝完成。這里有兩個注意問題:

 ?。?)之前按照百度上提供的方法,通過下載器來安裝32位g++,一直提示失敗,原因不詳。

 ?。?)在環(huán)境變量中32位g++和64位g++不能共存,否則會引發(fā)未知錯誤。這也告訴我們在配置環(huán)境變量時一定要注意及時刪除失效路徑,一是保證系統(tǒng)的安全,從而保持環(huán)境變量的整潔性。

  

  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多