如何在远程服务器上启用IPython/Jupyter Notebook

本文详细讲述如何在远程服务器端上启用IPython notebook,并在本地显示的过程

当数据量比较大的时候,IPython在本地运转的时候就显得很吃力了,排热风扇呼呼地运转,就好心疼电脑。这时候我们就希望能把执行过程放到服务器上去运行,然后呈现在本地,这样就不会心疼,也能很方便地调试了~

下面介绍具体步骤。

首先,假设你有两台机器:

local-machine: 你本地的电脑

remote-machine: 你能登录的远程服务器

预备:安装Jupyter/IPython

1
pip3 install ipython

这一步需要在 local-machineremote-machine都实现

为IPython加目录

关掉ipython,并在命令行输入以下两句:

1
2
3
4
pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install --user --skip-running-check

安装好后再启动ipython,会发现它多了一个 Nbextensions

img1

点击之后可以看到有很多插件,选择“目录”

img2

这样就添加好了。 打开一个ipython文件,就可以看到了png

img3

img4

Step 1. 在远程端启动IPython

登录远程服务器

1
ssh bella@remote-machine

这里的bella@remote-machine 前面换成自己登录服务器的用户名,后面换成服务器地址,如: arabela@192.100.100.1

运行IPython

1
jupyter notebook --no-browser --port=8898 --ip=127.0.0.1

注意,这个port=后面的数字可以自行改变,换成任意的没有被占用的端口即可

运行之后就会显示:

1
2
3
4
5
   Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://127.0.0.1:8898/?token=<加密加密>
[I 16:26:32.477 NotebookApp] 302 GET /?token=<加密加密> (127.0.0.1) 1.30ms

其中,http://127.0.0.1:8898/?token=<加密加密> 这一段,就是第三步需要用的token~

Step 2. 在本地建立连接

再开一个terminal端口,输入如下:

1
ssh -N -f -L 127.0.0.1:8898:127.0.0.1:8898 bella@remote-machine

然后输入密码,回车

注意:

  • 这里的8898需要对应上面在服务器上开的端口号!
  • 这里的bella@remote-machine 前面换成自己登录服务器的用户名,后面换成服务器地址,如: arabela@192.100.100.1

Step 3. 在本地启动

把第一步中那个token一行,复制粘贴到浏览器中,回车,即可看到熟悉的IPython界面啦~

参考链接:

http://kawahara.ca/how-to-run-an-ipythonjupyter-notebook-on-a-remote-machine/