默认情况下,在命令行输入 jupyter notebook, 即可启动服务jupyter notebook,访问IP是localhost:8888,假设部署服务器的IP是
192.168.0.32,那么在另外一台电脑是否可以通过192.168.0.32:8888访问呢?答案是不行。如果实现这样的功能,需要做一定的配置才可以。
设置 jupyter notebook 可远程访问的官方指南在这里
一、单用户版教程
单用户版就是系统是配置一个用户,登录的时候只需要输入默认用户的密码。多用户版,就是像稀牛等培训机构搭建的可以多个学生登录的培训系统。
1. 生成一个 notebook 配置文件
jupyter notebook --generate-config
执行后会生成配置文件, ~/.jupyter/jupyter_notebook_config.py
2、设置密码
$ jupyter notebook password
Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to ~/.jupyter/jupyter_notebook_config.json
3、修改jupyter_notebook_config.py
c.NotebookApp.ip='192.168.0.32'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False#启动服务后不打开浏览器
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = 'f:/nlp'##将启动目录设置为f:/nlp
注意:官方教程里面c.NotebookApp.ip='*',但是配置这样,会启动失败。
通过以上三步,重新启动
jupyter notebook,即可实现另外一台机器通过
192.168.0.32:8888 在访问。
二、多用户版教程
多用户版通过安装 jupyter Hub来实现
https://jupyterhub.readthedocs.io/en/latest/
jupyter Hub 根据终端用户数量不同,有两个发行版,比较如下
- Zero to JupyterHub on Kubernetes, for running JupyterHub on top of Kubernetes. This can scale to large number of machines & users.
- The Littlest JupyterHub, for an easy to set up & run JupyterHub supporting 1-100 users on a single machine.
三、Anaconda 环境下启动Jupyter notebook,在notebook 中无法加载tensorflow问题
现象:在python 环境下 import tensorflow没问题,但是在jupyter notebook无法加载
原因:jupyter notebook 不是安装在conda 环境tensorflow2 ,启动的是默认环境下的notebook
解决办法:
source activate tensorflow2
conda install ipython
conda install jupyter
启动的时候:
/home/quejinlong/.conda/envs/tensorflow2/bin/jupyter notebook
这样即可
四、Jupyter 后台运行
1. 后台运行
在云服务器中搭建好jupyter并运行后, 发现它会占用当前终端, 于是研究了一下怎么让它在后台运行.
1.入门级: jupyter notebook --allow-root > jupyter.log 2>&1 &
2.进阶版: nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
解释: 1.
> jupyter.log:表示将标准输出,输出到jupyter.log 文件
2>&1:表示错误输出重定向到标注输出
最后一个字符&:表示让命令后台运行
附linux定义:
- /dev/null 表示空设备文件
- 0 表示stdin标准输入
- 1 表示stdout标准输出
- 2 表示stderr标准错误
nohup表示no hang up, 就是不挂起, 于是这个命令执行后即使终端退出, 也不会停止运行.
2. 终止进程
执行上面第2条命令, 可以发现关闭终端重新打开后, 用jobs找不到jupyter这个进程了, 于是要用ps -a, 可以显示这个进程的pid.
kill -9 pid 终止进程