64位Win7搭建Python開發平臺Python3 + Ipython Notebook + Numpy + Scipy + Matplotlib + PyQt4

64位Win7搭建Python開發平臺(Python3 + Ipython Notebook + Numpy + Scipy + Matplotlib + PyQt4)

Life is short, you need Python!

------ Bruce Eckel(ANSI C++ Comitee member)

Python[1]是一門很難讓人拒絕學習的程序設計語言,我喜歡它是因為它能很快給人帶來成就感,海量的擴展庫幾乎可以幫助你立刻完成許多看起來很困難的事情。Python的觸角已經深入到學習、工作的各個領域,甚至是在科學計算領域也有不俗的表現,許多古老的fortran程序庫(如lapack[2])都被封裝成了Python的擴展庫,繼續散發著活力。

Python是開源的、免費的。開源,往往讓我想到跨平臺的問題。Linux上的軟件要移植到Windows上面,要借助于Cygwin[3],但其性能不令人滿意,后來有了Mingw[4],可以編譯32位的lapack庫,配合msys[5]就成了一個mini的linux。但是僅僅32位還是不能讓人滿意,于是又有了Mingw-w64[6],就連msys也不甘寂寞,弄出了個msys2[7],總算完美了,估計治好了不少人的強迫癥,但是它的包管理工具pacman著實讓我頭疼了一番。

64位已然成為主流,Python的開發平臺自然也最好是64位的。單純win64上的Python不是問題,關鍵在于與之配套的擴展庫,如numpy[8]、scipy[9],官方只提供了win32的安裝包,想在64位的Python上使用,只能自己編譯咯。這還不是最壞的情況,在Python出來的相當長的一段時間內,這些庫實際上只有python2版本的,如果現在你還在用python2,那可以安裝一個python(x,y)[10],最新版基于Python2.7.6,700+MB的安裝包包含了用都用不完的擴展庫,幾乎可以媲美matlab、mathematica等商業軟件。

回到編譯64位擴展庫的問題上,numpy需要64位lapack的庫,這個不難辦,我用Mingw-w64可以編譯出來,其實這個工作早有人做了[11],也可以直接裝個intel mkl[12],用intel的編譯器就可以了,有人在linux上實現了[13]。這三個思路我都嘗試了一下,最終發現numpy的說明文件寫的太粗糙了,想要順利編譯是不可能的。正當我要放棄時,發現了牛人Christoph Gohlke的工作[14],這家伙編譯了許多windows下python的開源科學計算程序庫,而且更新得很及時,幾乎都是最新版的。不得不相信一個事實,這個世界上有70億人,除非你做的工作是領域內最前沿的,否則你遇到的問題,大多都被別人解決過了。所以,拿過來,學習它,繼續前進,向最前沿前進。

總而言之,我所需要的東西都有了,下面就是單調的安裝、配置過程了。

Python 3.4.1 x86_64:這個無需多言。

numpy、scipy、matplotlib[15]、ipython[16]、pyqt4[17]:直接從[14]下載64位安裝包,以及有依賴關系的包,運行安裝,程序會自動安裝到python的目錄下。

這里的IPython實際上屬于IDE了,關于IDE,我嘗試了ERIC5、Wing IDE、Eclipse+PyDev等,但最喜歡的還是IPython和IDLE。學習基礎的Python時,用IDLE;學習科學計算庫numpy、scipy、matplotlib時,IPython,尤其IPython Notebook是不二選擇。IDLE和IPython在安裝完之后就可以直接使用,下面介紹IPython Notebook的配置:

1.?確保IPython可以正常運行:在命令行中輸入ipython,顯示如下提示:

如果提示缺少依賴庫的話,到[14]處下載安裝即可。

2.?安裝MathJax:Mathjax能夠方便地顯示數學符號、公式。默認情況IPython Notebook可以使用在線的Mathjax,本地安裝是為了方便離線狀態下使用。 在IPython中運行以下命令

1from IPython.external.mathjax import install_mathjax2install_mathjax()

3. 生成并修改配置文件:在命令行下運行ipythonprofile create,會在C:/Users/yourname/.ipython/下生成profile_default目錄,其中的ipython_notebook_config.py就是要修改的配置文件。增加以下內容

1c.NotebookApp.enable_mathjax =True2c.NotebookApp.notebook_dir ='X://XXX'//notebook啟動目錄3c.IPKernelApp.pylab ='inline'//生成的圖形嵌入到notebook中,也可通過%pylab inline命令在notebook中實現

4. 配置Matplotlib:這里按照其官方文檔中的CONFIGURATION GUIDE章節來配置就可以了。我主要關注的是其渲染LaTex的功能,這需要安裝texlive[18]或是miktex[19],以及ghostscript[20],并將其bin目錄添加到系統path環境變量中。這樣就可以生成eps圖片了,當然,這需要在程序中添加以下說明

1import matplotlibasmpl2mpl.rcParams['text.usetex']=True//啟用tex3mpl.rcParams['text.latex.unicode']=True//啟用Unicode

當然,這也可以通過修改.../Python34/Lib/site-packages/matplotlib/mpl-data/matplotlibrc配置文件來實現。

在實際運行過程中,有可能會遇到無法導出較大的eps圖像文件的情況,伴隨著某個臨時文件處于保護狀態的錯誤提示,我是直接把用戶臨時文件目錄修改到非系統盤目錄中來解決的。設置用戶環境變量

1TEMP=X:/XX2TMP=X:/XX//X為非系統盤

5. 到此為止,我們可以運行notebook了ipythonnotebook

運行Matplotlib官方主頁上的一個例子[21],給它加入一句輸出eps文件的命令,完美運行,如下所示:

我的筆記本屏幕小,只能截這一部分圖了。

可以看出,ipythonnotebook的界面與mathematica非常類似,至于功能上,二者會差別多大?這個我不知道,因為我投入python的懷抱了!

本文鏈接:http://www.cnblogs.com/bourbaki/p/4008883.html

[1] http://en.wikipedia.org/wiki/Python_(programming_language)[2] http://www.netlib.org/lapack/[3] http://www.cygwin.com/[4] http://www.mingw.org/[5] http://www.mingw.org/wiki/MSYS/[6] http://mingw-w64.sourceforge.net/[7] http://sourceforge.net/projects/msys2/[8] http://www.numpy.org/[9] http://www.scipy.org/[10] https://code.google.com/p/pythonxy/[11] http://icl.cs.utk.edu/lapack-for-windows/lapack/[12] https://software.intel.com/en-us/forums/intel-math-kernel-library/[13] http://blog.csdn.net/tengh/article/details/7940933[14] http://www.lfd.uci.edu/~gohlke/pythonlibs/[15] http://matplotlib.org/[16] http://ipython.org/[17] http://pyqt.sourceforge.net/Docs/PyQt4/[18] https://www.tug.org/texlive/[19] http://miktex.org/[20] http://www.ghostscript.com/[21] http://matplotlib.org/users/usetex.html#usetex-with-unicode

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容