ipython notebook是一个基于浏览器的python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。然而,有时候数据存在于服务器并且数据量比较大,拷贝到本地显然比较麻烦。因此想到了是否可以直接在本地远程访问服务器端的notebook。由于IPython Notebook是基于Web服务模式的,所以我们可以在远程服务器打开IPython服务器,在本地客户端启动IPython Web交互界面,这样可以很方便地操作远程数据。
前提条件
服务器中安装了anaconda,anaconda中已经有了notebook等集成的工具,使用起来非常方便。而且anaconda安装多版本的python也简单,安装多版本python可以参考之前笔记。安装了多版本的python之后notebook也可以自动检测到。
安装过程
1.生成配置文件
jupyter notebook --generate-config
2.在命令行输入:ipython,打开ipython并设置密码
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:*******
Verify password:*******
Out[2]: 'sha1:b13b8f87cb69:c70c8da8fbec8b0baf7c5d5834638d8fac7ac4b9'
3.修改jupyter_notebook_config.py文件。文件的内容比较多,因此使用vim的检索命令去检索要修改的内容,再进行修改。需要修改的内容如下:
c.NotebookApp.ip = '*' #设置远程所有ip可访问
c.NotebookApp.open_browser = False #关闭浏览器
c.NotebookApp.password=u'sha1:b13b8f87cb69:c70c8da8fbec8b0baf7c5d5834638d8fac7ac4b9' #输入生成密码
c.NotebookApp.port = 53232 #设置端口号
保存好配置文件。
4.开通本地到服务器的代理通道。在本地(我的是window10)执行以下命令
ssh -L 8000:localhost:8888 user@remoteip -p port
user 为你服务器的用户名,ip为服务器ip,port为你的服务器ssh所占用的端口号,默认为22,回车后输入密码直接登入服务器。之后在本地浏览器输入 localhost:8000即可访问notebook。如果登出ssh,则浏览器也会断开。