顯示具有 ipython 標籤的文章。 顯示所有文章
顯示具有 ipython 標籤的文章。 顯示所有文章

2018年3月20日 星期二

程式設計的開發者介面

半路出家的和尚,實在說不出什麼哲理。
但既然每次學習都要用到,還是自己記錄一下好了。
初學python ,就是使用python install 後的 launch. 但launch 的功能太兩光,所以上網找看看有沒有免費又好用的IDE(Interactive Development Environment), 中文稱為「互動式開發環境」。沒有IDE時,我們必須先在某個editor 編輯好程式後,再在editor 外的環境進行編釋或執行,editor 一般也沒有針對特殊程式語言進行關鍵字標示或語法錯誤的提示,因此非常地不方便,但這就是以前的開發程式的環境。後來有了IDE的概念後,程式開發變得比較友善了。
python 下的開發環境也有不少,包括像pyCharm 等,但大多要$$,在這個自由的世界,當然要找個自由的軟體,於是找到了 Atom , 這是一個相容於Windows/Mac OS/Linux 的自由軟體。當然MS 也提供了一個免費的IDE Visual Studio Code, 看來和 Atom 很類似,但因為對MS 的印象不好,所以沒試過VSC。

Atom 提供了自行修改的靈活度,可讓User 自行調整相關參數,以更符合自己的使用需求。同時它也提供了內建的套件管理,這些套件都各有優點,包括將python 語法錯誤特別標示的功能,python 自動定位的功能,將程式編列更整齊的套件等等,讓我在coding 時,可以一目瞭然。同時也支援 GitHub, 讓你可以做好版本管理,但我還是沒搞懂怎麼運作。最近的功能是提供協同作業,讓團隊可以一起編輯程式,這個很cool,只是我都是一個人作業,沒能用上。

在python 上,很多machine learning 或AI 的學習都支援python, 而其中另一個介面是 Jupyter。但我不想再裝一套介面⋯⋯畢竟6 年前MBP HD 才 256G,能減少重覆功能的程式是最好的。還好,Atom 也提供了 Jupyter 類似功能的套件 - Hygrogen。 Hydrogen 提供了在Atom 內類似Jupyter 的即時觀看結果,和圖形結果的介面內顯示,讓你可以將mathlab 的圖形直接在語言窗格內呈現,不用再另外跳出一個視窗。也提供了 cell 的執行,即單一或幾行的 程式執行,省去每次都要重頭執行的困擾。


我的Atom 介面



還有一個特別的套件 叫 platformio 要特別介紹一下,這是一個支援多種MCU 開發板的開發介面,不用再使用Arduino 的不方便介面,而且除了Arduino 還支援 ESP8266, STM32 等等,同時提供 terminal 介面,真的很方便

PlatformIO package
當然也支援conda 的環境。Anaconda 是一套提供python 及 環境的另一套介面程式,但我覺得跑起來有點慢,所以只使用了miniconda 的環境。另外也裝了intel 版的python,intel 的說法是,它針對 python 的AI 相關package 有做修正,執行速度更快(如Numpy, matlab, scimitar-learn 等)。
可以看到我的Python 是 intel 版的

要在Atom 內使用conda, 可以先安裝miniconda 後,再建立虛擬環境。
Intel 版的 python 可以在這裡找到,你可以裝單機版的,也可以裝 conda 版的,我是使用conda 版本,這裡有完整說明安裝方法
在裝好conda 版的 intel python 虛擬環境後,再確認一下 hydrogen 的環境可不可正常work。
同樣可以在conda 的環境安裝ipython(互動式python)

conda create -n ipykernel_py2 python=2 ipykernel
source activate ipykernel_py2    # On Windows, remove the word 'source'
python -m ipykernel install --user
其中最後一行,是起動 ipykernel 的重要步驟,沒跑這行,你的 Atom 只會呼叫原始python 版本,不會使用你的ipython kernel 和 intel 版 python.

以上記錄,希望自己不會忘記~