为什么要远程连接服务器jupyter-notebook:
1.有些很大的数据集,动则10G,20G,自己的笔记本内存吃不消
2.服务器上的CPU、GPU计算能力往往比自己电脑要好不少
配置流程:
注:因为服务器是很多人共用,而且比如服务器固态硬盘home文件夹空间小,机械硬盘data盘空间大。如果把虚拟conda环境配置在home下,一旦home盘满了,我的虚拟conda就启动不了了,所以这次配置我是先把虚拟conda环境布置在data盘,然后再配置jupyter notebook
一、创建虚拟conda
1.在data盘创建虚拟conda
$ conda create --prefix=/data/username/yourcondaname python=3.5
2.修改环境变量
在 .condarc 文件(如果没有自己直接创建一个)新增环境配置
envs_dirs:
- /data/username/.conda/envs
pkgs_dirs:
- /data/username/.conda/pkgs
完成后,使用 conda info 检验是否完成配置。
二、jupyter notebook配置
1. 切入自己的conda虚拟环境
$ source activate yourcondaname
2.生成jupyter notebook 配置文件
$ jupyter notebook --generate-config
3.配置密码
jupyter 5.0版本以上可以直接用以下命令
$ jupyter notebook password
Enter password: ****
Verify password: ****
如果上述方法失败,可以直接暴力法。
$ python
$>>> from notebook.auth import passwd
$>>> passwd()
输入两次密码后,会得到密码哈希值 ’sha1:**************’
然后把密码 ’sha1:**************’ 复制到jupyter配置文件 jupyter_notebook_config.py 和 jupyter_notebook_config.json中 password内容中
4.配置 jupyter_notebook_config.py 文件
c.NotebookApp.ip = '*'
c.NotebookApp.allow_root = True
c.NotebookApp.port = 8888
将上面内容直接粘贴到 jupyter_notebook_config.py 文件中
以上服务器的配置就设置完成了。
三、配置notebook自动补全(可选)
在notebook上没有自动补全,写代码是非常难受的,所以非常有必要进行配置。
切换conda虚拟环境后,
conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator
在我们打开jupyter notebook后(此步骤可以在我们完成后面的所有步骤后再打开notebook,勾选处理Nbextensions选项)
点击“Nbextensions”->取消“disable configuration for nbextensions without explicit compatibility (they may break your notebook environment, but can be useful to show for nbextension development)”->选择“Hinterland”
四、连接
内网连接:
切换虚拟conda环境后,直接在服务器上运行
$ jupyter notebook
外网连接:
先在服务器切换虚拟conda环境后,开启jupyter-notebook
$ jupyter notebook --no-browser --port=8889 --ip=127.0.0.1
如果想要服务器一直运行notebook,则加上nohup指令。
$ nohup jupyter notebook --no-browser --port=8889 --ip=127.0.0.1
本地与服务器端口ssh连接建立,本地cmd终端输入:
$ ssh -N -f -L localhost:8888:localhost:8889 -p *****(port) remote_user@remote_host
最后在本地浏览器键入地址127.0.0.1:8888,即可远程操作服务器notebook
参考链接: