jupyter notebook安裝/代碼補全/支持golang 踩坑記


安裝(不要用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即啟用了代碼自動補全

參考自

https://www.lefer.cn/posts/15473/

Notebook使用

  • 目錄

  • 文件新建及導入導出

  • 菜單

  • 快捷鍵 [esc+h]
    jupyter常用的快捷鍵:
    選中單元格情況下:M----->markdown,Y------>code

    shift + 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

        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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM