这篇文章记录下如何远程使用 jupyter notebook。
首先在服务器上,激活自己的 Python 虚拟环境:
1 | source /raid/workspace/tanjuntao/py35env/bin/activate |
如果没有安装 jupyter
这个包的话,需要首先安装:
1 | pip install jupyter |
安装成功后,接着启动 jupyter notebook
这个服务:
1 | jupyter notebook --no-browser --port=8080 |
这里面的端口可以任意指定,只要不和系统进程的端口冲突即可。
启动之后,会有一串输出提示信息:
1 | (py35env) (base) user@1-scw4750:/raid/workspace/tanjuntao$ jupyter notebook --no-browser --port=8080 |
从第 9 行中我们可以知道,我们的服务已经成功启动起来了,地址是:s1.linkeservers.ml
,端口是 8080
。
如果端口 8080
被其它进程占用的话,那么 jupyter notebook
会自动分配下一个端口,也就是 8081
。
接着,我们在自己本地的浏览器上,直接打开刚才的地址:http://s1.linkeservers.ml:8080/
,这时候会弹出一个登录窗口,如果你记得密码,直接登录就好了;如果忘了密码,就需要重新设置。
重设密码也很简单,在服务器上,先 ctrl + c
关闭 jupyter notebook
服务,接着输入:
1 | jupyter notebook password |
这时候会提示输入新密码,输入完之后再输一遍进行确认,jupyter notebook
的登录密码就被重置了。
接着我们重新启动 jupyter notebook
服务,在浏览器中输入刚才重置后的密码,就可以使用远程的 jupyter noteboook
了。
有两点需要注意的:
- 在浏览器中打开的
jupyter notebook
目录,和在服务器上启动jupyter notebook
时的目录一致。也就是说,当前在服务器上所处的目录,会在浏览器中以jupyter notebook
的方式打开; - 可以同时在多个端口启动当前的
jupyter notebook
: 我们可以在多个终端会话下启动jupyter notebook
,每次使用不同的--port
参数。这样的话,如果我有多个工程项目,在不同的目录下,我就可以先切换到各个工程所在目录,然后在该目录下去启动jupyter notebook
,然后在浏览器上打开不同的端口,就可以同时编辑不同的工程项目了。
启动完服务之后,如何关闭该端口的服务呢?有两种方式:
- 直接在服务器终端下
ctrl + c
关闭服务; - 在浏览器打开的
jupyter notebook
页面下,点击quit
按钮即可。