一個好的編譯器對於咱們處理平常的科研很關鍵,好的編譯器不管是從界面,字體風格,提示,調試等各方面都能從用戶角度出發,提供最好的使用體驗。Python自己自帶的IDLE或者在CMD裏進行操做和調試,對於小型的測試程序和學習的時候是能夠的;可是對相對比較大的程序,它們就顯得有些力不從心了,首先是查找和提示的,還有就是當你想要改變程序中某個變量或者函數的名稱,一個個查找是讓人奔潰的事情。python
本人顯示從IDLE和CMD開始Python碼城過程的,慢慢的發現,相對於之前使用的VS和eclipse,它們顯得太LOW了。我開始嘗試在sublime裏面進行編輯,給sublime裝插件,可以直接運行Python程序(Ctrl+B),以及進行代碼智能提示。sublime用了好長一段時間,仍是比較好用的,代碼的顯示也比較讓人愉悅,你也能夠按本身的喜愛去進行配置。總的來講,仍是比較推薦sublime的。還有就是pycharm了,有不少的Python開發者使用它,PyCharm確實是Python開發之首選。我也用過一段時間,習慣了sublime,就沒太多的去研究,整體來講也仍是比較推薦的編譯器之一。web
後來在別人的博客中看到了ipython,它是一個Python交互式的shell,比默認的shell要好用,支持變量的自動補全,自動縮進,支持bash shell命令,內置了許多頗有用的功能和函數。安裝也很簡單,windows下直接在命令行輸入:python –m pip install IPython。最讓人驚喜的是,ipython中提供了一下簡單好用的magic函數。如下是百度上列舉的經常使用命令:shell
%bg function把 function 放到後臺執行,例如: %bg myfunc(x, y,z=1),以後能夠用jobs將其結果取回。myvar = jobs.result(5) 或 myvar =jobs[5].result。另外,jobs.status() 能夠查看現有任務的狀態。 %ed 或 %edit編輯一個文件並執行,若是隻編輯不執行,用 ed -x filename 便可。 %env顯示環境變量 %hist 或 %history顯示歷史記錄 %macro name n1-n2 n3-n4 ... n5 .. n6 ...建立一個名稱爲 name 的宏,執行 name 就是執行 n1-n2 n3-n4 ... n5 .. n6 ...這些代碼。 %pwd顯示當前目錄 %pycat filename用語法高亮顯示一個 python 文件(不用加.py後綴名) %save filename n1-n2 n3-n4 ... n5 .. n6 ...將執行過多代碼保存爲文件 %time statement計算一段代碼的執行時間 %timeit statement自動選擇重複和循環次數計算一段代碼的執行時間,太方便了。
然而百度漏掉了比較經常使用的%run,能夠用來運行外部的Python腳本。還有**??來顯示某個模塊用法,如import os,os??。其餘的包括查看變量的值,代碼運行效率檢查等。下次我將單獨開一篇講常見的magic命令,此次就很少贅述。編程
說完本身選擇編譯器進行開發的過程,終於要來到咱們的重點了——Anaconda。一個偶然的機會,看到師兄使用ipython notebook進行彙報,能夠在頁面進行代碼和文檔排版編寫,對於科學計算很是方便。ipython notebook是web based IPython封裝,可是能夠展示豐富文本,使得整個工做能夠以筆記的形式展示、存儲,對於交互編程、學習很是方便。關於ipython notebook的具體使用,找機會單獨另開一節,在此不是重點。下圖是它的頁面,在上面還能夠用markdown標記編輯文本。能夠呈現很不錯的文檔頁面。flask
Anaconda是一個集成的環境,如今已經升級到Anaconda2了,直接下載安裝,很方便,集成了Python,ipython,notebook,Spyder和qtconsole,以下所示。以前的ipython notebook也改成了jupyter notebook。windows
Anaconda是一個和Canopy相似的科學計算環境,但用起來更加方便。自帶的包管理器conda也很強大。Anaconda提供了Python2.7和Python3.4兩個版本,同時若是須要其餘版本,還能夠經過conda來建立。bash
下面來看一下conda。輸入 conda list 來看一下全部安裝時自帶的Python擴展。粗略看了一下,其中包括了經常使用的 Numpy , Scipy , matplotlib 和 networkx 等,以及 beautiful-soup , requests , flask , tornado 等網絡相關的擴展,還有經常使用的科學工具包,scikit-image,scikit-learn等。其餘沒有的包能夠經過pip,easy_install安裝,也能夠經過它特有的conda來進行安裝,conda install ***,若是須要指定版本,也能夠直接用 [package-name]=x.x 來指定。conda的repo中的擴展不算太新,若是想要更新的,可能要用PyPI或者本身下載源碼。而conda和pip關聯的很好。使用pip安裝的東西可使用conda來管理,這點要比Canopy好。markdown
這個科學計算環境的另外一個要求就是可以多個Python版本並存,尤爲是2.x和3.x的並存。這個經過 virtualenv 能夠作到。Anaconda也正是經過其實現的。網絡
下面用conda建立一個名叫python3的版本爲python3.4的環境。eclipse
conda create -n python3 python=3.4
這樣就會在Anaconda安裝目錄下的envs目錄下建立python3這個目錄。
向其中安裝擴展能夠:
直接用 conda install 並用 -n 指明安裝到的環境,這裏天然就是 python3 。
像 virtualenv 那樣,先activate,而後在虛擬環境中安裝。
spyder就是一個Python的擴展,也是比較好用的,感興趣的能夠本身親自嘗試下,它裏面的查看變量的功能仍是很方便的。
2015-11-23 22:13:51