2015年8月1日 星期六

cython workshop 150801 上課內容整理(一) - 環境架設

這天在摩茲工寮有一個一天的 cython workshop,最近因為開發 SOLVCON 所以開始需要寫一些 cython ,加上講師陣容看起來很堅強,所以毫不猶豫就報名了。

環境架設


這次 workshop 使用 vagrant 來準備測試用的環境。這算是我第一次用 vagrant。對於 vagrant 架設測試環境的快速與簡易,感到有一點小小驚喜。大致來說,vagrant 提供一個方便操作的前端,用 virtual box 來做實際的虛擬環境;網路上已經有很多介紹 vagrant 的文章,我在這裡就不多加描述。

我自己的筆電是 Ubuntu 14.04,接下來所有的操作與描述都是基於這個環境。

在 host machine 裝 virtual box 和 vagrant


安裝 virtual box


使用 Ubuntu 的軟體中心搜尋 virtual box 或是使用指令

sudo apt-get install virtualbox

如果在 virtualbox 的執行不太正常,請確定系統中在安裝完 virtualbox 之後,有 virtualbox-dkms 這個套件。確保 virtualbox 和你當下的 kernel 版本能夠很好地合作。

安裝 vagrant

sudo apt-get install vagrant

(這麼好裝,是時候喊一下「我愛 debian-based 的套件管理!」)

取得上課用的 source code


git clone https://github.com/yungyuc/cythonup.git

如果上面的 branch 失效,可以改用我對這個 git branch 的 fork

git clone https://github.com/tai271828/cythonup.git

取得上課用的測試環境 image


課堂上已經有提供包好的 image ,使用 debian jesse 64 bit。
把這個 image 和相關設定檔 copy 到同一個目錄,
然後匯入 vagrant 就好。
匯入 vagrant 的指令:
vagrant box add debian/jessie64 ./package.box
package.box 是講師事先準備好的 image 名字。debian/jessie64 是稍早從上面 github 取得的 vagrant 設定檔 Vagrantfile 裡面寫死的名稱。

因為我沒有附上上課的 image,這裡提供一個另外的方法取得 image。我沒試過這些方法,大概會遇到一些問題。只是打算提供讀者一些可能可以用的資源。這個連結裡面有一些別人事先準備好的 image (請注意我沒有驗證過這個網站和 image 的安全可靠性),使用下面這個指令去取得 image,注意請盡量也是選擇和課堂一樣的 jesse 作為 image,盡量讓差異少一些。使用下面的語法把 image 匯入 vagrant:
vagrant box add {你想要的Box名稱} {下載網址,請見上面連結}
我大概可以預期至少會遇到某些套件缺少或是相依的問題,應該少什麼裝什麼大概就可以解決掉大部分的問題。vagant 似乎也有提供官方下載的站台,我試了一下覺得要從台灣下載實在太慢了,沒耐心等他跑完。

啟動 vagrant


到有 Vagrantfile 的同一個目錄下,執行
vagrant up

啟動 ipython notebook server

因為講師打算使用 ipython notebook 作為講義,所以我們來開啟一個這樣的 server 來閱讀講師提供的講義。

透過 ssh 進去 vagrant 準備好的虛擬環境

vagrant ssh

在此虛擬環境中啟動 ipython notebook server

vagrant@debian-jessie:~$ ipython notebook --ip "*" --no-browser

這個指令的意思就是啟動 ipython notebook server,並且不要主動打開瀏覽器(因為我們不要在虛擬環境中打開瀏覽器)。啟動後,在 hostmachine 裡面打開你的瀏覽器,開始瀏覽

http://localhost:8888/