乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      1.2.4 定制IPython Notebook

       imelee 2017-04-14

      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文件一起打包。

      1. import os  
      2. ipython = get_ipython()  
      3. print "HOME環(huán)境變量:", os.environ["HOME"]  
      4. print "IPython配置文件夾:", ipython.ipython_dir  
      5. print "當(dāng)前的用戶配置文件夾:", ipython.config.ProfileDir.location  
      6. HOME環(huán)境變量: C:\Users\RY\Dropbox\scipybook2\settings  
      7. IPython配置文件夾: C:\Users\RY\Dropbox\scipybook2\settings\.ipython  
      8. 當(dāng)前的用戶配置文件夾:   
      9. C:\Users\RY\Dropbox\scipybook2\settings\.ipython\profile_scipybook2  

      可以在命令行中輸入如下命令來創(chuàng)建新的用戶配置:

      1. ipython profile create test 

      修改用戶配置文件夾之下的配置文件之后,在啟動Notebook時(shí)通過--profile參數(shù)指定所采用的用戶配置:

      1. ipython notebook --profile test 

      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ò)展程序。

      1. https://github.com/ipython-contrib/IPython-notebook-extensions/wiki/config-extension 

      安裝IPython擴(kuò)展程序的說明。

      首先執(zhí)行下面的語句來安裝Notebook客戶端的擴(kuò)展程序,user參數(shù)為True表示將擴(kuò)展安裝在HOME環(huán)境變量路徑之下的.ipython文件夾中:

      1. import IPython.html.nbextensions as nb  
      2. ext= 'https://github.com/ipython-contrib/IPython-notebook-extensions/archive/3.x.zip' 
      3. nb.install_nbextension(ext, user=True)  

      上面的程序?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文件。

      1. from IPython.utils.path import get_ipython_dir  
      2. import os  
      3. import sys  
      4.  
      5. ipythondir = get_ipython_dir()  
      6. extensions = os.path.join(ipythondir,'extensions')   
      7. sys.path.append( extensions ) ?  
      8.  
      9. c = get_config()  
      10. c.NotebookApp.server_extensions = [ 'nbextensions'] ?  
      11. c.NotebookApp.extra_template_paths = [os.path.join(ipythondir,'templates')] ?  

      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)算核配置文件:

      1. import os  
      2. from os import path  
      3. import json  
      4.  
      5. ipython = get_ipython()  
      6. kernels_folder = path.join(ipython.ipython_dir, "kernels")  
      7. if not path.exists(kernels_folder):  
      8.     os.mkdir(kernels_folder)  
      9.  
      10. python3_path = "C:\\WinPython-64bit-3.4.3.3\\scripts\\python.bat" 
      11.  
      12. kernel_settings = {  
      13.  "argv": [python3_path,   
      14.           "-m", "IPython.kernel", "-f", "{connection_file}"],  
      15.  "display_name": "Python3-64bit",  
      16.  "language": "python"  
      17. }  
      18.  
      19. kernel_folder = path.join(kernels_folder, kernel_settings["display_name"])  
      20. if not path.exists(kernel_folder):  
      21.     os.mkdir(kernel_folder)  
      22.  
      23. kernel_fn = path.join(kernel_folder, "kernel.json")  
      24.  
      25. with open(kernel_fn, "w") as f:  
      26.     json.dump(kernel_settings, f, indent=4)  

      上面的代碼創(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讀書頻道二維碼


      51CTO讀書頻道活動討論群:342347198

      【責(zé)任編輯:book TEL:(010)68476606】

      回書目   上一節(jié)   下一節(jié)

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多