Jupyter Notebook二次開發的經驗(一)——安裝開發版本

搭建開發環境

安裝Node.js和npm

參考:https://www.runoob.com/nodejs/nodejs-install-setup.html

安裝Notebook-dev

使用Python虛擬環境或者默認環境執行下面的操作:

git clone https://github.com/jupyter/notebook
cd notebook
pip install -e .

完成後,使用pip list查看發現,notebook 5.5.0.dev0會指向一個路徑。
啓動服務jupyter notebook,此時notebook服務端會運行你正在編輯的源代碼。
前端使用jinja2模板編寫,頁面加載了大量的js,並需要使用npm構建。
運行npm run build:watch監聽js的修改及時構建。
另外,服務端的調試模式爲jupyter notebook --debug

配置文件

notebook

執行jupyter notebook --generate-config在用戶目錄生成配置文件~/.jupyter/jupyter_notebook_config.py
常用配置如下:

# 解決跨域問題
c.NotebookApp.tornado_settings = {
      'headers': {
            'Content-Security-Policy': "frame-ancestors self *; report-uri /api/security/csp-report",
      }
}
# 可訪問的IP地址
c.NotebookApp.ip = '*'
# 端口
c.NotebookApp.port = 9123
# 啓動服務端時是否打開瀏覽器
c.NotebookApp.open_browser = False
# 去掉密碼驗證
c.NotebookApp.token = ""
# 是否開啓新建終端
c.NotebookApp.terminals_enabled = False
# 是否可以通過前端修改密碼
c.NotebookApp.allow_password_change = False
# 前端是否展示退出按鈕
c.NotebookApp.quit_button = False
# 默認打開的目錄路徑
c.NotebookApp.notebook_dir = "workspace"

可以根據客戶需求適當修改配置。
文檔列出了所有配置:notebook配置項

ipython

如果在加載內核(即啓動任意notebook)的時候執行指定的代碼。
在路徑~/.ipython\profile_default\startup下面放置.py文件,類型00-dataset_api.py命名,前面的數字代表優先級。
這樣在notebook中就可以調用目錄下python腳本定義的類、函數和變量。

開始二次開發

Notebook後端使用tornado框架,分爲多個模塊。對應的於templates不同的頁面。
從templates說起:
在這裏插入圖片描述
tree.html是文件列表頁面;
notebook.html是notebook代碼運行頁面;
這裏不一一列出,大家可以根據相關特徵進行判斷。
比較簡單的就是修改前端的一些樣式、文字和圖標。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章