一、簡單介紹
Jupyter Notebook是一個開源Web應用程序,允許您創建和共享包含實時代碼,方程式,可視化和敘述文本的文檔。用途包括:數據清理和轉換,數值模擬,統計建模,數據可視化,機器學習等等。支持python C java Go等多種編程語言。同時支持markdown編輯器。
二、安裝
首先確保系統已經安裝python,推薦python3
python3 -V
pip3 -V
安裝jupyter
pip3 install jupyter
設置登錄密碼
# 首先進入python命令行
python3
# 在命令行下輸入
from notebook.auth import passwd;passwd()
# 按照提示輸入密碼,這是jupyter的登陸密碼
設置成功會出現形如下面的哈希(hash)密碼, 保存好,下面會用到
'sha1:1f058372c7df:8e41e88ca42eebf80be6ff26b473cabb13f3e5aa'
生成配置文件 jupyter_notebook_config.py
linux普通用戶在/home/$USER/.jupyter目錄下,root用戶在/root/.jupyter下(建議采用普通用戶安裝)
windows在C:\Users\username下,username為你電腦用戶名
jupyter notebook --generate-config
編輯 jupyter_notebook_config.py,在開頭加入以下代碼
#設置可訪問的ip為任意。
c.NotebookApp.ip = '*' #某些版本為c.NotebookApp.ip = '0.0.0.0',都表示任意ip
#不打開瀏覽器。推薦谷歌,火狐等訪問登錄jupyter
c.NotebookApp.open_browser = False
#這里填上面設置密碼時生成的hash密碼
c.NotebookApp.password = 'sha1:1f058372c7df:8e41e88ca42eebf80be6ff26b473cabb13f3e5aa'
#允許使用root用戶開啟jupyter,windows忽略這條
c.NotebookApp.allow_remote_access = True
#設置登陸端口,一般為8888
c.NotebookApp.port = 8888
#設置jupyter-notebook的工作空間,注意linux與windows的路徑表示方式
c.NotebookApp.notebook_dir = 'F:\Jupyter_workspace'
## 其他配置項根據自己需要修改
保存后在終端或者命令行輸入
jupyter-notebook
終端或者命令行不要關閉,在瀏覽器地址欄輸入http://localhost:8888或者http://127.0.0.1:8888
出現jupyter登陸頁面則初步安裝成功,輸入設置的登陸密碼,新建一個python3文件,即.ipynb文件
輸入
print("Hello Jupyter") # 按shift+enter運行
正常輸出說明安裝成功
三、開機自啟與后台運行
1. Ubuntu下配置jupyter開機自啟與后台運行
查看jupyter-notebook安裝位置
whereis jupyter-notebook
推薦采用用戶目錄,最好不要采用root目錄,root用戶為 /usr/local/bin/jupyter-notebook 普通用戶為/home/$USER/.local/bin/jupyter-notebook
#新建服務文件
sudo vim /lib/systemd/system/jupyter.service
加入以下代碼
[Unit]
Description=jupyter notebook
After=network.target
[Service]
Type=simple
# 這里填用戶名,下同
User=starfish
EnvironmentFile=/home/starfish/.local/bin/jupyter-notebook
ExecStart=/home/starfish/.local/bin/jupyter-notebook
ExecStop=/usr/bin/pkill /home/starfish/.local/bin/jupyter-notebook
KillMode=process
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
保存后終端依次輸入以下代碼
sudo systemctl daemon-reload
sudo systemctl enable jupyter.service
sudo systemctl start jupyter.service
輸入以下代碼觀察有無報錯信息
systemctl status jupyter
配置成功的話jupyter-notebook已經添加進系統服務,同時滿足開機自啟與后台運行
進入http://localhost:8888或者http://127.0.0.1:8888驗證
其他常用控制jupyter命令
#移除jupyter服務
sudo systemctl disable jupyter.service
#重啟jupyter服務
sudo systemctl restart jupyter.service
#停止jupyter服務
sudo systemctl stop jupyter.service
注意 ubuntu如果開啟防火牆的話須開啟8888端口
sudo ufw status # 查看防火牆狀態
sudo ufw allow 8888 # 開啟8888端口
2. Windows下配置jupyter開機自啟與后台運行
首先確保能在命令提示符CMD下正常開啟jupyter-notebook
jupyter-notebook
瀏覽器能正常訪問http://localhost:8888或者http://127.0.0.1:8888
在非系統目錄下新建文本文檔,修改文件名為jupyter.bat,需要設置文件顯示后綴名
用記事本打開,輸入以下代碼
start /b jupyter-notebook >nul 2>nul
保存后可以雙擊jupyter.bat測試能否正常開啟jupyter
再次新建文本文檔,修改文件名為jupyter.vbs
用記事本打開,輸入以下代碼
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\Python-3.7.2\jupyter.bat",vbhide
上面的路徑改為自己的jupyter.bat所在路徑,注意不能是系統目錄
保存后移動jupyter.vbs到windows啟動文件夾
win7 在C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下,admin為自己電腦用戶名
win10在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
重啟電腦,瀏覽器進入http://localhost:8888或者http://127.0.0.1:8888驗證
四、配置jupyter-notebook遠程訪問
經過以上幾步配置,jupyter-notebook已經可以在局域網中遠程訪問
linux下輸入以下命令查看IP
ifconfig
Windows下輸入以下命令查看IP
ipconfig
局域網中輸入IP:8888就訪問
如果想配置局域網中的jupyter-notebook在何時何地都可以訪問,需要具有公網IP地址的服務器與內網穿透工具
這里內網穿透工具推薦frp,功能強大,免費開源
1.下載
首先在官方網站下載最新版安裝包,根據系統下載,64位為amd64版本,32為386版本
在服務器端和客戶端把相對應的frp軟件包下載解壓后,把文件夾移到自己的軟件安裝目錄
2.軟件配置
服務器端配置,編輯frps.ini
# frps.ini
[common]
bind_port = 7000
客戶端配置,編輯frpc.ini
# frpc.ini
[common]
server_addr = xxxx
server_port = 7000
[jupyter]
type = http
local_port = 8888
custom_domains = xxxx
xxxx為公網服務器ip,8888為jupyter服務端口
3.配置frp自啟
①ubuntu下配置frp開機自啟與后台運行
以ubuntu服務器端frp配置為例,和上面類似
#新建服務文件
sudo vim /lib/systemd/system/frp.service
加入以下代碼
[Unit]
Description=frp service
Wants=network.target
After=multi-user.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
[Install]
WantedBy=multi-user.target
ExecStart中填frp服務器端的配置文件的絕對路徑
linux客戶端配置類似的只需要把ExecStart中的frps改成frpc
保存后終端依次輸入以下代碼
sudo systemctl daemon-reload
sudo systemctl enable frp.service
sudo systemctl start frp.service
②windows下配置frp開機自啟與后台運行
類似地,在frp配置文件目錄新建frp.bat,輸入以下命令
D:\frp_0.27.1_windows_amd64\frpc -c D:\frp_0.27.1_windows_amd64\frpc.ini
D:\frp_0.27.1_windows_amd64為我的frp解壓安裝目錄,這里必須輸入frp配置文件的絕對路徑
新建frp.vbs,輸入以下命令
Set ws1 = CreateObject("Wscript.Shell")
ws1.run "cmd /c D:\frp_0.27.1_windows_amd64\frp.bat",vbhide
上面路徑改為自己的frp.bat路徑
將frp.vbs移動到系統啟動目錄
win7 在C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下,admin為自己電腦用戶名
win10在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
最后,在Ubuntu下,保證防火牆開啟所用到的端口
# 開啟防火牆
sudo ufw enable
# 關閉防火牆
sudo ufw disable
# 查看防火牆狀態
sudo ufw status
# 開啟所有用得到的端口
sudo ufw allow 8888
sudo ufw allow 22
## 下面兩個端口是frp配置時的端口
sudo ufw allow 7000
sudo ufw allow 6000
測試:重啟所有服務端與客戶端主機,任意網絡訪問 (公網IP:8888) 就可以進入jupyter-notebook頁面
至此 jupyter-notebook的安裝配置,開機自啟、后台運行與遠程訪問設置完成
參考
(25條消息) Ubuntu與windows下配置安裝jupyter-notebook以及其開機自啟、后台運行與遠程訪問_starfish55555的博客-CSDN博客