因为几个月前买了一台 iPad,而我发现 iPad 最大的问题就是无法编程,所以打算自己搭建一个 jupyter notebook 的远程服务器,云服务器使用的是阿里云。
我使用的是 Ubuntu 18.04 的镜像,对于其他 linux 服务器,可能也就是包管理器不一样而已。
远程连接 root 账户。
无论是本地使用 SSH 还是去阿里云的网站都可,无所谓。
安装 pip3。
1
apt install python3-pip
经测试,阿里云的 Ubuntu 18.04 自带 python3,但不带 pip3。
安装 jupyter 和一些其他想要使用的库。
1 2 3
pip3 install jupyter pip3 install matplotlib pip3 install sklearn
创建一个文件夹专门来放置 jupyter 的工作目录。
1 2 3 4 5 6
cd /var/local mkdir jupyter cd jupyter mkdir home cd /var/log touch jupyter.log
生成 jupyter 配置和生成密码的 SHA 值。
1 2 3 4
jupyter notebook --generate-config ipython > from notebook.auth import passwd > passwd()
注意复制下来,待会要用。
使用 vim 修改 jupyter_notebook_config.py。
1
vim ~/.jupyter/jupyter_notebook_config.py
在最后插入以下信息。
1 2 3 4 5 6
c.NotebookApp.ip = '*' c.NotebookApp.allow_root = True c.NotebookApp.open_browser = False c.NotebookApp.port = 8888 c.NotebookApp.password = u'上面生成的sha值' c.ContentsManager.root_dir = '/var/local/jupyter/home'
安装 nbextensions
原生 jupyter 的很多体验不是很好,推荐使用一个 jupyter 插件来弥补。
1 2 3
pip3 install jupyter_contrib_nbextensions jupyter contrib nbextension install --user --skip-running-check jupyter nbextensions_configurator enable --user
先进入 jupyter 配置一下,勾选 Hinterland,这个是自动补全功能。虽然比较简陋,但是也很不错了。
你可以看到这个插件还有很多其他的功能,可以自己探索一下。
后台守护进程开启服务器。
1
nohup jupyter notebook > /var/local/jupyter/runtime.log 2>&1 &
可能需要权限:
1
nohup jupyter notebook --allow-root > /var/local/jupyter/runtime.log 2>&1 &
由于阿里云的限制,还需要配置一下安全策略。
打开云服务器的实例界面,选择
本实例安全组
-配置规则
,可以看到下面的这个界面,添加一条规则就行了。在 Safari 中,打开服务器的 IP+端口号 8888。