輕松搞定IPython + Notebook 基于云的科學計算環境
IPython + Notebook server 提供了一種基于云的科學計算開發環境。它既能夠使開發者享受到云計算的強大計算能力,也能夠使開發者無需在自己本地安裝任何軟件就能有良好的開發界面。此外,從本地到云端,帶寬要求極低。本文給出了讀者詳細的步驟,如何輕松搞定一個專屬你的基于IPython + Notebook環境。里面所用到的云環境 (SuperVessel Cloud)是完全免費的。
AD:
IPython + Notebook 提供了一種基于云的科學計算開發環境。它既能夠使開發者享受到云計算的強大計算能力,也能夠使開發者無需在自己本地安裝任何軟件就能有良好的開發界面。此外,從本地到云端,帶寬要求極低。
準備工作:只需要你的本地瀏覽器即可!!
注冊一個云計算帳號
這里我們建議注冊超能云(SuperVessel Cloud)(注冊網址:http://www.ptopenlab.com)。原因有兩個:
超能云是OpenPOWER基金會支持下構建的,完全面向開發者免費的云平臺。基于云的科學計算環境基于云的科學計算環境
超能云目前已經有了支持IPython + Notebook的鏡像,免費供開發者使用。
(關于超能云SuperVessel 本身,可參看鏈接:http://my.oschina.net/u/1431433/blog/380504)
注冊步驟很簡單(如果您已經有了帳號,可以直接到下面一節)
進入網址:http://www.ptopenlab.com 。
點擊右上方的“注冊”按鈕。在彈出的對話框填寫你的有效郵箱地址,還有密碼。郵箱地址必須有效,因為超能云(SuperVessel)會給您發一封激活的郵件。
3. 進入你注冊使用的郵箱,有一封發自admin@ptopenlab.com的郵件,點擊里面的激活鏈接,你的帳號就可以被激活使用了。
建立一個支持IPython + Notebook的虛擬機
1. 點擊 http://www.ptopenlab.com 頁面上的“申請POWER虛擬機”按鈕,就可以進入SuperVessel云平臺管理界面。 SuperVessel會要求您再登陸一次。您使用之前注冊的帳號密碼即可。
2. 用戶登錄后,進入主面板,如下圖所示訪問預裝軟件計算服務(Pre-installed compute service):
3. 通過選擇預裝軟件計算服務(Pre-installed compute service), 進入預裝好的開發環境鏡像列表.如下圖所示。
4. 選擇“Python科學計算及應用開發環境”,點擊“啟動”。在如下彈出框繼續選擇“啟動”。
在這里,界面提示會每天扣除10個藍點。因為在你注冊的時候,系統已經預先分配了一大批藍點給用戶。此外,SuperVessel他們會經常有小活動,獎勵用戶藍點。基本上不用發愁藍點的問題:)可以加入QQ組:SuperVessel (344373069)獲得最新的活動信息,也可以關注微信公眾號 SuperVessel。
5. 在上一個步驟中點擊“啟動”后,系統會通知新的實例創建成功。如果你原來沒有在SuperVessel上面申請過資源,系統還會給你分配一個VPN帳號。
關于VPN的設置,可以參看鏈接:https://services.ptopenlab.com/mediawiki/index.php/VPN%E7%9A%84%E4%BD%BF%E7%94%A8 ,有十分詳細的步驟說明。
登錄并配置IPython + Notebook 開發環境
在這個步驟中,我們要登錄到剛剛建立的云平臺虛擬機配置開發環境。
1. 登錄開發環境需要先進行VPN登錄。具體VPN的登錄方法,詳見:https://services.ptopenlab.com/mediawiki/index.php/VPN%E7%9A%84%E4%BD%BF%E7%94%A8。
2. 在連通VPN后,即可登錄該開發環境所在的虛擬機。可使用類似putty的工具在Windows環境下登錄,或直接使用SSH在Linux環境下登錄。
3. 這個開發環境需要在root權限下進行服務的啟動、配置和停止。登錄到虛擬機后,可以通過su命令切換到root。如:
opuser@gto:/home/opuser#?su
root密碼的初始值為passw0rd,在首次登錄時會強制修改密碼。修改的密碼原則是:
至少8個字符 必須包括大寫字母、小寫字母和數字 大寫字母在密碼的首位或數字在密碼的末尾都不算。 系統會提示重復確認輸入的新密碼。
4. 打開服務端口。本開發環境使用Web-Server方式提供遠程圖形化界面。目前默認使用的服務端口是9999。在使用前,需要到你的管理平臺的界面 https://crl.ptopenlab.com:8800/dashboard/project/access_and_security/ 打開9999端口。具體操作步驟,可以參見鏈接:https://services.ptopenlab.com/mediawiki/index.php/%E6%8E%A7%E5%88%B6%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%8F%A3%E8%AE%BF%E9%97%AE
由于我們的開發環境是基于Ubuntu Linux構建的,所以不需要配置虛擬機內部的防火墻。在增加服務端口時,可以按照下圖來配置必要的選項。
5. 啟動IPython Notebook服務。在root帳號下,在虛擬機中,輸入如下命令,啟動遠程科學計算開發環境的服務:
root@gto:~/#?ipython?notebook?--profile=nbserver
服務啟動成功后,會看到類似如下的命令行輸出:
2014-12-2118:11:35.339[NotebookApp]?Using?existing?profile?dir:?u'/root/.ipython/profile_nbserver'
2014-12-2118:11:35.344[NotebookApp]?Using?system?MathJax
2014-12-2118:11:35.351[NotebookApp]?Serving?notebooks?from?local?directory:?/root/src
2014-12-2118:11:35.351[NotebookApp]?The?IPython?Notebook?is?running?at:?https://[all?ip?addresses?on?your?system]:9999/
2014-12-2118:11:35.351[NotebookApp]?Use?Control-C?to?stopthisserver?and?shut?down?all?kernels?(twice?to?skip?confirmation).
^C2014-12-2118:11:41.925[NotebookApp]?interrupted
Serving?notebooks?from?local?directory:?/root/src
The?IPython?Notebook?is?running?at:?https://[all?ip?addresses?on?your?system]:9999/
在本地打開瀏覽器訪問圖形化開發界面
在您當前的終端電腦上啟動瀏覽器,在地址欄輸入
https://172.16.10.35:9999/
其中,172.16.10.35需要替換成您的虛擬機IP地址。因為我們要使用SSL加密Web和服務器之間的所有通信,所以不能是“http”而必須是“https”,但由于虛擬機使用的是直接的IP地址,所以瀏覽器會有警告提醒。我們直接接受該警告提醒即可。
對于IE瀏覽器,會出現如下圖的警告:
選擇“繼續瀏覽此網站(不推薦)。”即可。Firefox或Chrome也會有類似的頁面,選擇類似選項即可。然后看到如下IPython的頁面,證明連接服務器正常了:
在這個鏡像中,我們設置IPython notebook的初始密碼是 passw0rd . 使用該密碼登陸進去,就可以進行第一個科學計算的操作了。
編寫第一個IPython的遠程科學計算程序
可以在頁面上選擇“New Notebook”,就會為新的程序打開一個新的標簽頁。例如,我們在新的標簽頁輸入兩行命令,
a?=?rand(100)
plot(a)
這兩行命令很簡單,先是定義數組a為100個隨機數的數組。然后用plot命令把a數組生成線狀圖。 以下是您可以獲得的界面:
是不是很簡單,很方便呢?
修改IPython Notebook圖形化界面登錄密碼
如果您不想使用初始密碼,可以按照下面的步驟來修改IPython Notebook 服務的登陸密碼。
1. 在root權限下,輸入下面的命令,以生成新的密碼
python?-c"import?IPython;print?IPython.lib.passwd()"
2. 輸入兩次新的密碼后,系統會為新的密碼生成SHA串。
Enter?password:
Verify?password:
sha1:a83146285fe2:5288dfeb3a6a88cf46028af16992fadce...?(安全原因略去)
3. 編輯配置文件
vim?/root/.ipython/profile_nbserver/ipython_notebook_config.py
4. 修改密碼項:
c.NotebookApp.password?=?u'sha1:a83146285fe2:5288dfeb3a6a88cf46028af16992fadce...'
5. 重新啟動服務:
ipython?notebook?--profile=nbserver
密碼修改完成!
博文出處:http://blog.csdn.net/linzhaolover/article/details/44098759