13 May 2017

在本地上写python脚本通常使用的效率工具组合ipython + sublimetext,但是,当需要将本地开发的脚本部署到服务器上时,流程就略显复杂,一般的流程是先通过跳板机ssh上去,再从跳板机ssh到服务器,编写好的脚本则需要两次scp才能上传到服务器上,在服务器上调试脚本和修改脚本也相对麻烦,前者可以用ipython,后者则可以是在本地重新scp两次或者在服务器上通过vim来直接修改服务器文件,可能因为我不习惯这种编程模型一直觉得流程不是那么顺。刚好最近在服务器上打一个jupyter notebook,发现使用notebook会是整个流程顺畅很多,这里记录一下相关的一些经验。

安装python

一般linux服务器上都有安装python,不过版本可能较低,可以自己手动安装最新版本。

一般的流程是wget下载最新的python包,tar xvf解压tar包

cd进入所在目录

./configure
make
make install

如果没有sudo权限,则需要直接prefix,比如

./configure --prefix=/home/hdfs/python3.6 --enable-optimizations

配置环境

在bash_profile里面添加

添加/home/hdfs/python2.7/bin/

/home/hdfs/python3.6/bin/:/home/hdfs/python3.6/lib/python3.6/site-packages

PATH=”/usr/local/bin/python3.6${PATH}”

export PATH

修改之后要source一下

source $HOME/.bash_profile

安装jupyter notebook

pip3 install jupyter

截至到这里jupyter notebook就安装完成了,可以通过

jupyter notebook

来启动服务器

不过这时只能localhost本地访问http://localhost:8888,如果要让外网也能访问需要进行如下的配置。

配置notebook

生成notebook配置文件

jupyter notebook --generate-config

配置文件的地址为~/.jupyter/jupyter_notebook_config.py

生成访问密码

jupyter notebook password

生成的密码会写在~/.jupyter/jupyter_notebook_config.json

进行简单的配置

c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888

上面的命令以此是:允许任意ip访问;启动notebook后不启动浏览器,因为linux上也没有浏览器可以启动;定义端口

启动notebook

jupyerter notebook

输入服务器ip:8888就可以访问notebook

notebook高效开发的一些小贴士

  • notebook自带的terminal启动就是在服务器端,不需要再从跳板机各种跳转登录服务器,基本上所有的功能都能在这个terminal中进行
  • notebook可以直接创建文件并在编辑修改
  • notebook可以上传下载或删除文件,不需要在scp几个来回才能传输文件
  • notebook 提供的wigets、bqplot和dashboard为notebook增加交互能力,可以为数据科学家填补最后一块拼图,这块的内容可以展开成一系列的文章,后续会写一些介绍内容。


分享到: 更多
友荐云推荐