Ubuntu与windows下配置安装jupyter-notebook以及其开机自启、后台运行与远程访问
一、简单介绍
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博客