設置 jupyter notebook 可遠程訪問&&設置jupyer 權限問題&

首先是要 安裝 Anaconda

默認情況下,安裝好 Anaconda 後打開 jupyter notebook, 訪問本地
localhost:8888 即可。但是如果要訪問另一臺機器,比如遠端服務器上的 notebook, 即默認是不支持 172.104.105.119:8888 這樣的訪問,需要額外配置。

設置 jupyter notebook 可遠程訪問的官方指南在這裏,在遠端服務器上執行以下操作:

1. 生成一個 notebook 配置文件

默認情況下,配置文件 ~/.jupyter/jupyter_notebook_config.py 並不存在,需要自行創建。使用下列命令生成配置文件:

jupyter notebook --generate-config

如果是 root 用戶執行上面的命令,會發生一個問題:

Running as root it not recommended. Use --allow-root to bypass.

提示信息很明顯,root 用戶執行時需要加上 --allow-root 選項。

jupyter notebook --generate-config --allow-config

執行成功後,會出現下面的信息:

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

2. 生成密碼

自動生成

從 jupyter notebook 5.0 版本開始,提供了一個命令來設置密碼:jupyter notebook password,生成的密碼存儲在 jupyter_notebook_config.json

$ jupyter notebook password
Enter password:  ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

手動生成

除了使用提供的命令,也可以通過手動安裝,我是使用的手動安裝,因爲jupyter notebook password 出來一堆內容,沒耐心看。打開 ipython 執行下面內容:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed 這一串就是要在 jupyter_notebook_config.py 添加的密碼。

c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

3. 修改配置文件

jupyter_notebook_config.py 中找到下面的行,取消註釋並修改。

c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...剛纔複製的那個密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一個端口, 訪問時使用該端口

以上設置完以後就可以在服務器上啓動 jupyter notebook,jupyter notebook, root 用戶使用 jupyter notebook --allow-root。打開 IP:指定的端口, 輸入密碼就可以訪問了。

需要注意的是不能在隱藏目錄 (以 . 開頭的目錄)下啓動 jupyter notebook, 否則無法正常訪問文件。

Jupyter運行時出現下面的錯誤:Unexpected error while saving file: arma/Untitled.ipynb [Errno 13] Permission denied:

執行如下代碼修改Jupyter的一部分文件的權限(執行完之後重新啓動即可):

sudo chmod 777 ~/.local/share/jupyter/
cd ~/.local/share/jupyter/
ls
sudo chmod 777 runtime/
cd runtime/
ls

改完之後就沒有問題啦!

今天用Jupyter又出問題了,過程是這樣的,我複製了之前製作的一個模板文件夾,cd進去之後運行Jupyter.py文件,自動打開瀏覽器之後顯示如下錯誤:

an error occurred while creating a new notebook

Create Untitled.ipynb [Errno 13] Permission denied:

當你點擊瀏覽器上的python2或者python3來創建新的Untitled.ipynb時,就會提示你Permission denied:,權限不足~

好吧,既然你說權限不足,那我們就用sudo指令看看會怎樣吧(結果如下):

好,提示我你不要用sudo,沒用的,就是創建不了,接着想:會不會是應爲文件夾的權限問題導致我沒有權限寫數據到問價夾當中呢?於是我檢查了之前能創建性的notebook的文件夾的權限:l

上圖是我已經修改過之後的結果(修改指令:chmod改權限  chown改歸屬者  chgrp改歸屬組):

   文件夾的權限應該爲:drwxrwxr-x

   文件的組應該屬於:ubuntu-mm

  文件的歸屬者應該爲:ubuntu-mm

同樣的內部的文件的權限如下:

如果你的文件夾或者文件夾或者文件不是上面你的權限情況,那你可是改成上面的情況適宜時,說不定這樣你就能用啦~

1、修改 tmp 目錄所屬用戶爲 root,用戶組爲 root

chown -R root:root /tmp

2、修改 tmp 目錄爲可寫權限

chmod -R 777 /tmp

 

當時用Anaconda安裝多個版本的python的時候,或者由於多次卸載anaconda時,導致python的kernel內核安裝路徑混亂,使得Jupyter notebook不可用。

解決辦法

  1. 首先打開Anaconda Prompt
  2. 輸入jupyter kernelspec list查看安裝的內核和位置
  3. 進入安裝目錄,打開kernel.jason, 查看python的編輯器的路徑文件是否與安裝路徑一樣
  4. 如果不一樣,那麼輸入 python -m ipykernel install --user, 重新安裝內核即可
  5. 重啓jupyter notebook 即可使用。 
  6. jupyter kernelspec uninstall yourKernel

 

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