python編譯環境發掘——從IDLE到sublime到pycharm到Anaconda


  一個好的編譯器對於我們處理日常的科研很關鍵,好的編譯器無論是從界面,字體風格,提示,調試等各方面都能從用戶角度出發,提供最好的使用體驗。Python本身自帶的IDLE或者在CMD里進行操作和調試,對於小型的測試程序和學習的時候是可以的;但是對相對比較大的程序,它們就顯得有些力不從心了,首先是查找和提示的,還有就是當你想要改變程序中某個變量或者函數的名稱,一個個查找是讓人奔潰的事情。

  本人顯示從IDLE和CMD開始Python碼城過程的,慢慢的發現,相對於以前使用的VS和eclipse,它們顯得太LOW了。我開始嘗試在sublime里面進行編輯,給sublime裝插件,能夠直接運行Python程序(Ctrl+B),以及進行代碼智能提示。sublime用了好長一段時間,還是比較好用的,代碼的顯示也比較讓人愉悅,你也可以按自己的喜好去進行配置。總的來說,還是比較推薦sublime的。還有就是pycharm了,有很多的Python開發者使用它,PyCharm確實是Python開發之首選。我也用過一段時間,習慣了sublime,就沒太多的去研究,總體來說也還是比較推薦的編譯器之一。

  后來在別人的博客中看到了ipython,它是一個Python交互式的shell,比默認的shell要好用,支持變量的自動補全,自動縮進,支持bash shell命令,內置了許多很有用的功能和函數。安裝也很簡單,windows下直接在命令行輸入:python –m pip install IPython。最讓人驚喜的是,ipython中提供了一下簡單好用的magic函數。以下是百度上列舉的常用命令:

%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標記編輯文本。可以呈現很不錯的文檔頁面。

  Anaconda是一個集成的環境,現在已經升級到Anaconda2了,直接下載安裝,很方便,集成了Python,ipython,notebook,Spyder和qtconsole,如下所示。之前的ipython notebook也改為了jupyter notebook。

  Anaconda是一個和Canopy類似的科學計算環境,但用起來更加方便。自帶的包管理器conda也很強大。Anaconda提供了Python2.7和Python3.4兩個版本,同時如果需要其他版本,還可以通過conda來創建。

  下面來看一下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好。

這個科學計算環境的另一個要求就是能夠多個Python版本並存,尤其是2.x和3.x的並存。這個通過 virtualenv 可以做到。Anaconda也正是通過其實現的。

下面用conda創建一個名叫python3的版本為python3.4的環境。

conda create -n python3 python=3.4
這樣就會在Anaconda安裝目錄下的envs目錄下創建python3這個目錄。

向其中安裝擴展可以:

直接用 conda install 並用 -n 指明安裝到的環境,這里自然就是 python3 。
像 virtualenv 那樣,先activate,然后在虛擬環境中安裝。

spyder就是一個Python的擴展,也是比較好用的,感興趣的可以自己親自嘗試下,它里面的查看變量的功能還是很方便的。

2015-11-23 22:13:51


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM