jupyter notebook远程配置
服务器端配置
- 在服务器生成jupyter配置文件
$jupyter notebook --generate-config
生成之后会得到配置文件的路径
- 启动jupyter,设置密码
In [1]: from notebook.auth import passwd
In [2]: passwd()
输入、确认密码之后,得到了密文'shal:...'
- 修改配置文件
打开之前生成的配置文件
添加如下代码:
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'shal:...' #之前生成的密文
c.NotebookApp.open_browser = False
c.NotebookApp.port = 3456 #随便一个端口就可以
- 重启jupyter
如果用terminal启动,不会弹出浏览窗口。
服务器端配置完成
本地配置
注:服务器端启动jupyter的terminal窗口不要关闭
在本地直接访问 http://服务器地址:3456 ,输入密码就可以进入jupyter了。
修改jupyter的python环境
注:在本地打开的jupyter页面本质上是服务器端的,所以设置的python环境也应为服务器端的。
- 安装ipykernel
pip install ipykernel
python -m ipykernel install --user --name python3.6 --display-name "python 3.6"
--name后为环境名称
--display-name后为在jupyter中显示的名字
jupyter自动补全
注:均在服务器端进行安装
- 安装nbextensions
pip install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple
jupyter contrib nbextension install --user
- 安装nbextensions_configurator
pip install --user jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
- 重启jupyter notebook
此时主页会多出Nbextensions
按钮,点击后勾选Hinterland
,重启jupyter就开启自动补全了。
注:自动补全可能会与远程访问有冲突(不清楚原理),在自动补全配置完成之后,重启服务器端jupyter,可能会有如下错误:
Traceback (most recent call last):
File "/data/xxxxxx/anaconda3/envs/python3.6/lib/python3.6/site-packages/traitlets/traitlets.py", line 528, in get
value = obj._trait_values[self.name]
KeyError: 'allow_remote_access'
......
在最开始生成的配置文件中加入
c.NotebookApp.allow_remote_access = True
重启jupyter即可。