1.2.4 定制IPython Notebook 雖然IPython只提供了最基本的編輯、運(yùn)行Notebook的功能,但是它具有豐富的可定制性,用戶可以根據(jù)自己的需要打造出獨(dú)特的Notebook開發(fā)環(huán)境。如圖1 8所示,IPython Notebook系統(tǒng)由瀏覽器、服務(wù)器和運(yùn)算核三部分組成。IPython分別提供了這三部分的定制方法。 1. 用戶配置(profile) 每次啟動IPython時(shí)都會從指定的用戶配置(profile)文件夾下讀取配置信息。下面的代碼輸出當(dāng)前的用戶配置文件夾的路徑:該路徑由HOME環(huán)境變量、.ipython和profile_配置名構(gòu)成。 在本書提供的運(yùn)行IPython Notebook的批處理文件中配置了HOME環(huán)境變量,因此能將配置文件夾和Notebook文件一起打包。
可以在命令行中輸入如下命令來創(chuàng)建新的用戶配置:
修改用戶配置文件夾之下的配置文件之后,在啟動Notebook時(shí)通過--profile參數(shù)指定所采用的用戶配置:
2. 服務(wù)器擴(kuò)展插件和Notebook擴(kuò)展插件 在.ipython文件夾之下還有兩個子文件夾--extensions和nbextensions,它們分別用于保存服務(wù)器和瀏覽器的擴(kuò)展程序。 extensions:存放用Python編寫的服務(wù)器擴(kuò)展程序。 nbextensions:存放Notebook客戶端的擴(kuò)展程序,通常為JavaScript和CSS樣式表文件。 Notebook的服務(wù)器基于tornado服務(wù)器框架開發(fā),因此編寫服務(wù)器的擴(kuò)展程序需要了解tornado框架,而開發(fā)Notebook客戶端(瀏覽器的界面部分)的擴(kuò)展程序則需要了解HTML、JavaScript和CSS樣式表等方面的內(nèi)容。這些內(nèi)容與本書的主題無關(guān),就不再詳細(xì)敘述了。下面看看如何安裝他人開發(fā)的擴(kuò)展程序。
安裝IPython擴(kuò)展程序的說明。 首先執(zhí)行下面的語句來安裝Notebook客戶端的擴(kuò)展程序,user參數(shù)為True表示將擴(kuò)展安裝在HOME環(huán)境變量路徑之下的.ipython文件夾中:
上面的程序?qū)⒃趎bextensions文件夾下創(chuàng)建IPython-notebook-extensions-3.x文件夾,其中包含了許多客戶端擴(kuò)展程序。接下來按照如下步驟完成安裝: (1) 將nbextensions\IPython-notebook-extensions-3.x\config移到nbextensions文件夾之下。 (2) 將nbextensions\config\nbextensions.py移到extensions文件夾之下。 (3) 在.ipython之下創(chuàng)建templates文件夾。 (4) 將nbextensions\config\nbextensions.html移到templates文件夾之下。 (5) 將nbextensions\config\ipython_notebook_config.py中的代碼添加到profile_default\ipython_ notebook_config.py中。 (6) 訪問http://localhost:8888/nbextensions/,在該頁面上可以管理nbextensions文件夾下安裝的客戶端擴(kuò)展程序。 當(dāng)Notebook服務(wù)器啟動時(shí),會運(yùn)行用戶配置(profile)文件夾之下的ipython_notebook_config.py文件,并使用其中的配置。 下面是ipython_notebook_config.py中的配置代碼。 首先將extensions文件夾添加到Python的模塊搜索路徑之下,因此該路徑之下的nbextensions.py文件可以通過import nbextensions載入。 指定服務(wù)器擴(kuò)展程序的模塊名,由于之前添加了搜索路徑,因此Python可以直接通過模塊名'nbextensions'找到對應(yīng)的文件nbextensions.py。 將templates文件夾添加到服務(wù)器擴(kuò)展程序的網(wǎng)頁模板的搜索路徑,讓服務(wù)器可以找到nbextensions.html文件。
nbextensions擴(kuò)展程序?yàn)榉?wù)器添加了一個新的URL--http://localhost:8888/nbextensions/,通過該路徑可以開啟或禁止指定的客戶端擴(kuò)展程序。nbextensions擴(kuò)展程序通過遞歸搜索nbextensions文件夾下的YAML文件識別客戶端擴(kuò)展程序,IPython-notebook-extensions-3.x目錄下只有部分?jǐn)U展程序附帶了YAML文件,讀者可以仿照這些文件為其他的擴(kuò)展程序添加相應(yīng)的YAML文件,這樣就可以通過nbextensions頁面管理擴(kuò)展程序了。 3. 添加新的運(yùn)算核 由于執(zhí)行用戶代碼的運(yùn)算核與Notebook服務(wù)器是獨(dú)立的進(jìn)程,因此不同的Notebook可以使用不同版本的Python,甚至是其他語言的運(yùn)算核。IPython的下一個版本將改名為Jupyter,其目標(biāo)是創(chuàng)建通用的科學(xué)計(jì)算的開發(fā)環(huán)境,支持Julia、Python和R等在數(shù)據(jù)處理領(lǐng)域流行的語言。下面以Python3-64bit為例介紹如何添加新的運(yùn)算核。 首先從WinPython的網(wǎng)址下載WinPython-64bit-3.4.3.3.exe,并安裝在C盤根目錄之下。然后運(yùn)行下面的代碼來創(chuàng)建運(yùn)算核配置文件:
上面的代碼創(chuàng)建.ipython\kernels\python3-64bit\kernel.json文件,它是一個JSON格式的字典,其中"argv"鍵為運(yùn)算核的啟動命令,"display_name"為運(yùn)算核的顯示名稱,"language"為運(yùn)算核的語言。 刷新Notebook的索引頁面之后,可以在"New"下拉菜單中找到"Python3-64bit"選項(xiàng),單擊它將打開一個以Python3 64bit解釋器為運(yùn)算核的Notebook頁面。在Notebook頁面中也可以使用"Kernel"菜單更改當(dāng)前的運(yùn)算核。運(yùn)算核的配置保存在Notebook文件中,因此下一次開啟Notebook時(shí),將自動使用最后一次選擇的運(yùn)算核。 感興趣的讀者可以試試添加更多的運(yùn)算核,筆者在Windows系統(tǒng)下成功地安裝了PyPy、Julia、R、NodeJS等運(yùn)算核。 51CTO讀書頻道二維碼
【責(zé)任編輯:book TEL:(010)68476606】
|
|