安裝(不要用root)
安裝anaconda3,然后ln -s bin目錄下的jupyter命令到/usr/bin目錄下
生成密碼備用
敲ipython
進入交互終端
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:xxxxxxxxxxxxxxxxxxxxxxxxx'
然后復制整個 sha1:67c9e60bb8b6:xxxxxxxxxxxxxxxxxxxxxxxxx
生成jupyter配置文件:
看一眼 ~/.jupyter/jupyter_notebook_config.py
是否存在,默認情況下並不存在需要自行創建。使用jupyter notebook --generate-config
命令生成配置文件:
設置配置文件,設置密碼:
c.NotebookApp.ip='0.0.0.0' #允許遠程訪問
c.NotebookApp.password = u'sha:ce...剛才復制的那個密文'
c.NotebookApp.open_browser = False #不打開瀏覽器
c.NotebookApp.port =8888 #可自行指定一個端口, 訪問時使用該端口228行
c.NotebookApp.allow_origin = '*' # 允許跨域訪問
參考自
https://www.cnblogs.com/wu-chao/p/8419889.html
配置代碼自動提示
安裝nbextensions
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
如果上面失敗,可以試試:jupyter contrib nbextension install --user --skip-running-check
win和mac參考下面:
windows
- 1:確定是已經安裝好anaconda
- 2:要在anaconda prompt模式下運行(jupyter notebook打開)
- 3:pip install jupyter_contrib_nbextensions(安裝成功后,關掉jupyter notebook及相關網頁,並重新打開,觀察是否安裝成功)
- 4:如果發現依舊失敗,則可進行此步驟,注意(jupyter notebook關閉)
進行配置:jupyter contrib nbextension install --user --skip-running-check - 5:安裝完成后,重新啟動jupyter notebook,“Nbextensions”出現在導航欄中,勾選目錄。
macos
- 1:確定是已經安裝好anaconda
- 2:要在Mac終端下運行,如何找到終端(啟動台-其他-終端)
- 3:先安裝nbextensions依次輸入運行下面代碼:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
- 4:安裝完成后,關終端,啟動anaconda中的jupyter notebook,在主頁中,可以看見Nbextensions標簽頁,選中Hinterland 就能使用代碼補全了。
里面幾個常用的插件
- Table of Contents:更容易導航
- Autopep8:輕輕一擊就能獲得簡潔代碼,相當於代碼的格式化
- variable inspector:跟蹤你的工作空間
- ExecuteTime:顯示單元格的運行時間和耗時,后面在講到magic里面有和他相似的內容功能
繼續安裝nbextensions_configurator
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
如果提示缺少依賴,就使用pip安裝對應依賴即可,conda環境不會報錯。
重啟jupyter,在彈出的主頁面里,能看編輯-Nbextensions
標簽頁,在這個頁面里,勾選Hinterland
即啟用了代碼自動補全
參考自
Notebook使用
-
目錄
-
文件新建及導入導出
-
菜單
-
快捷鍵 [esc+h]
jupyter常用的快捷鍵:
選中單元格情況下:M----->markdown,Y------>codeshift + Tab :查看方法中的參數
雙擊D,刪除當前的單元格(刪除之后,Crtl + Z還原無效)
插入一行:b(bellow),a(above)
執行單元:Ctrl + Enter(運行本單元,選中本單元)
shift + Enter(運行本單元,選中下一個單元)
Alt + Enter(運行本單元,向下插入一個單元)
更多魔法指令:%lsmagic查看
關於Magic命令
Notebook中的Magic開關
在jupyter的Code模式下,除了一般的python代碼編輯外,jupyter還支持一些其他的編程語言,如R,Julia,bash等,不過需要使用magic單元。
- 為實現一些快捷操作,提升效率。Notebook中提供了Magic開關,能極大得優化我們使用Notebook的體驗。
- Magic 開關分為兩大類:%line magic(%表示magic只在本行有效) & %%cell magic(%%表示magic在整個cell單元有效)
例如:使用magic產生Linux下的shell環境,
%%bash
pwd && ls
## 表示一個可以修改內核選項ast_node_interactivity,使得jupyter對獨占一行的所有變量都自動顯示
%config ZMQInteractiveShell.ast_node_interactivity='all'
[In]
a = 2
n = 4
a
n
[Out]
2
4
查看代碼運行時間
%time 一行
%%time 多行
%%timeit多行的平均時間
其他問題
- 信任服務器筆記本需要點擊
件-信任代碼
(否則會404,無法執行),更多安全策略詳見官方文檔:
https://jupyter-notebook.readthedocs.io/en/latest/security.html#our-security-model
-
插件安裝:
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html -
如果是nginx轉發,可能會websocket鏈接失敗,因為請求的代理頭丟失了.需要修改proxy配置,傳遞請求頭:
location /api {
proxy_pass http://xx.xx.xx.xx:xxxx;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
- nginx還需要配置一個請求體大小,否則很容易超限:
在http{}中配置一個狠的:client_max_body_size 50m;
golang支持
jupyter notebook支持多語言,golang語言的jupyter需要一個kernel支持: https://github.com/gopherdata/gophernotes
但是這個kernel又依賴zeromq,所以:
夢想這樣666:
https://www.jianshu.com/p/c82a2a21afcc
實際有坑,這么干:
https://segmentfault.com/a/1190000015674501
安裝zeromq:
https://github.com/zeromq/zeromq4-x/branches
流程:
- 去下載zeromq
- 然后解壓,
- configure 指定--prefix=/usr/local/zeromq4.0.8
- make make install
- 配置環境變量,讓系統找到那個包
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/zeromq4.0.8/lib/pkgconfig
- 配置系統參數,讓系統可以找到so,看上面第二個博客就ok