配置远程Linux云服务器+可视化工作环境+jupyter notebook

原创 2017年08月06日 12:47:32

配置远程Linux云服务器+可视化环境

一直希望能像“黑客军团”里的男主那样,随时随地就可以开始hack。后来才逐渐发现,他实际上登录的是一个远程服务器,在已经配置好的服务器上,开始hack&工作。

并且,联系到最近我在学习机器学习,也需要这样一个独立的环境(因为Linux主机带来带去的确是太笨重了)方便我在移动中办公和学习。

因此就萌生了这样一个想法,但是实施起来却非常困难,好在已经打通了一条路子。本文的目标是:使用阿里云ECS的主机(Ubuntu 14.04),搭建一个Python环境,并且可以实现可视化(例如可以运行matplotlib),我可以通过mac、linux、windows在远程任意地实现可视化和命令行的操作,进行机器学习。

1. 配置云服务器

这部分不多说,就是在阿里云上面买一台ECS服务器,然后配置好root密码就可以了。镜像选用公共镜像-Ubuntu 14.04。这是一个妥协的选择,显然16.04更好,但似乎没有找到可供参考的安装教程,因此就会麻烦一些(14.04的python版本很老,需要编译安装python, python-setuptools)。

顺便也可以学习一下如何配置,增长Linux知识。

首先打开terminal,使用ssh连接服务器:

$ ssh root@ip
$ password of root

1

首次打开的时候会询问是否保存秘钥,如果服务器系统重置了,需要删除这个秘钥才能够正常登陆:

$ cd ~/.ssh
$ rm known_hosts

2

登录以后第一件事情是更新apt-get源:

$ apt-get update

这一步操作非常重要

2. 配置Python开发环境

下面开始配置Python开发环境。直接打开python我们可以发现,Ubuntu 14.04的python版本是2.7.6,非常低,而且也不能使用apt-get或者pip安装matplotlib,总之问题非常多。我本能地感觉到需要重新编译安装一个高版本python,并且给它配置一个对应的pip。

因此我们的目标是:

  1. 编译安装另一个版本的python
  2. 编译安装setuptools,也就是easy_install
  3. 使用easy_install安装对应的pip
  4. 使用这个pip安装matplotlib等机器学习库
  5. 创建软链接(快捷方式)

2.1 编译安装非系统自带的python

首先是编译安装python

请参考这篇文章

先apt-get安装编译的依赖,然后是去python官网下载源代码,这里我使用的是2.7.13,再是编译安装。注意第2步里面需要改变文件名:

$ ./configure --prefix /usr/local/lib/python2.7.13 --enable-ipv6

这样就装到/usr/local/lib/python2.7.13下面了。

2.2 安装python-setuptools

顺着这篇文章下去,setuptools似乎是因为墙或者别的原因,安装不下去了,因此要用源代码编译方式安装setuptools。(对于这个情景,我不推荐apt-get的安装方法,因为天知道setuptools会被安装到哪个python下面去)

请参考这篇文章
先把全文看完,再安装,后面有一步操作要放到前面来:

$ apt-get build-dep python

接着在google搜索setuptools下载最新版源代码包就可以了。这里的关键是第3步,要用相应的python(前面编译的非系统python)来编译setuptools,也就是将easy_install和我们自己的python版本一一对应:

$ /usr/local/lib/python2.7.13/bin/python setup.py build

这样就将python2.7.13和easy_install对应起来了。

然后顺利编译安装,/usr/local/lib/python2.7.13/bin/下面就可以执行easy_install了。

2.3 安装非系统自带python对应的pip

接着回到上面的那篇文章中来,我们需要使用这个新的easy_install安装对应的pip,然后利用这个新的pip安装各种包。请注意由于我们安装了新的python2.7.13,环境变量已经发生了变化,因此:

$ /usr/local/lib/python2.7.13/bin/easy_install pip
$ /usr/local/lib/python2.7.13/bin/pip install ***packages

这样就可以顺利正确配置python并安装matplotlib、numpy等包了,否则你会遇到各种报错。

2.4 创建软链接

最后为了方便,我们还需要创建软链接,总不能每次都使用/usr/local/lib/python2.7.13/bin/...这条命令吧。

这里的原理是:linux在执行bin的时候,是按照
/usr/bin/->/usr/local/顺序往下读的。这意味着输入easy_install会先从/usr/bin/下面寻找,因此我们只需要在优先级最高的/usr/bin/下面创建一个软链接,链接到我们需要python版本对应的easy_install和pip真实bin文件下就可以了:

 $ ln -s /usr/local/lib/python2.7.13/bin/easy_install /usr/bin/easy_install
 $ ln -s /usr/local/lib/python2.7.13/bin/pip /usr/bin/pip

左侧是真实bin,右侧是快捷方式的bin。
这样就可以直接输入easy_installpip而不会去错位置了

当然我们也可以偷懒地:

$ ln -s /usr/local/lib/python2.7.13/bin/python /usr/bin/python13
或者
$ ln -s /usr/local/lib/python2.7.13/bin/python /usr/bin/python2.7.13

这样就可以使用

$ python13 / python2.7.13

打开我们自己的python环境了。

———-8月10日的补充————
我们还需要将/usr/local/lib/python2.7.13/bin
加入到我们的环境变量中,否则会出现pip安装报错的情况:

$ vim ~/.bashrc
加入:
export PATH=/usr/local/lib/python2.7.13/bin:$PATH
保存退出
$ source ~/.bashrc

3. 配置可视化环境

当然只有这些是远远不够的,例如matplotlib无法在非可视化环境下运行,因此我们还需要配置一个可视化环境。

3.1 linux环境配置部分

首先你安装的linux镜像是不带可视化界面的,因此需要安装可视化(GUI)环境:

可以参考这个教程

$ apt-get install x-window-system-core
$ apt-get install gnome-core
$ apt-get install gdm

非常简单,这就是使用Ubuntu 14.04的好处,亲测可用。

3.2 客户端环境配置部分

windows环境可以使用xshell+x-manager组合,具体就不说了,这里主要说mac环境下的配置方法。

可以参考这个教程

主要思路就是安装xQuartz这个软件(可视化环境,提供x11环境),调用方法是打开软件-打开application菜单栏-打开terminal,会打开一个bash的终端窗口,使用ssh命令。或者是用mac自带的termianl,使用:

$ ssh -X root@ip

终端就可以调用xQuartz的x11环境了。

我们分别用matplotlib和firefox测试一下:

$ ssh -X  root@ip
$ firefox

会打开linux服务器下的firefox,但奇卡无比,但至少成功了:
3

$ python13
>> import matplotlib.pyplot as plt
>> import numpy as np
>> plt.figure(1)
>> x = np.linspace(0, 3, 100)
>> plt.plot(x, np.exp(x))
>> plt.show()

然后就会使用xQuartz输出matplotlib绘制的图了:
4

亚克西!

3.3 配置jupyter notebook

使用一段时间以后发现一个问题:

  • 在mac、windows上安装了X11环境,因此可以很方便地打开matplotlib生成的图,但是在linux上却不行。
  • 用python命令行的方式来编程,非常不方便,尤其是机器学习写代码的时候需要一步一步地验证和修改,而我们又没有办法在远程使用pycharm这样的IDE。

但是我发现jupyter notebook可以很好地解决上述两个问题,唯一的不足是jupyter notebook里没法用制表键tab选出类库的信息。

下面开始教程:
我是参考这个教程来配置的。

1.首先是安装jupyter,jupyter在python2环境下需要安装ipython 5.0

$ pip install ipython==5.0
$ pip install jupyter

2.然后就照着教程安装就可以了,非常简单,亲测可用。

3.最后只需要进入主机,在命令行下输入:

$ jupyter notebook --allow-root
如果你没有输出环境变量,那么:
$ /usr/local/lib/python2.7.13/bin/jupyter notebook --allow-root

jupyter notebook就运行在你ECS:ip:8888下了。
然后打开浏览器,输入:

ip:8888

就可以登录jupyter开发了。顺便安利一下jupyter,非常舒服,甚至可以用于开发。

4.最后完善一下

最后需要完善什么呢?这涉及到一个使用远程服务器一个很麻烦的地方:你不能断开命令行,否则程序就会终止(例如jupyter notebook),或者你在运行一个爬虫脚本,这样就不能关机了。

这里介绍tmux,tmux就是可以将terminal进程挂机运行的一个工具。

具体可以参考这篇文章

大致的方法就是:

1.现在登录远程服务器,安装tmux

$ apt-get install tmux

2.你可以创建一个自己的会话(具体的知识可以看上面参考的文章)

先退出当前会话:
$ tmux detach
然后创建会话:
$ tmux new -s your_session_name
然后就登入了你的会话,你还可以退出,再使用:
$ tmux a -t your_session_name

这里tmux detach就是登出你的会话,就相当于将这个terminal窗口挂机运行。这样你就可以利用tmux实现jupyter notebook常驻运行了。

然后就可以随时随地,只要有一个浏览器,就可以做python开发了:)

是不是很酷?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hawkuu/article/details/76763680

腾讯云CVM服务器安装宝塔面板 快速安装可视化网站管理环节

本文原创来自:https://www.laomulu.com/cvm-bt/ 宝塔面板最近发展还是蛮快的,算是国内比较好用且功能较多的免费WEB面板,可以在LINUX和WINDOWS系统中都有版...
  • subaomg
  • subaomg
  • 2017-10-26 21:07:00
  • 1147

【Linux\云服务器】CentOS 7.2 64位 可视化桌面的安装与卸载

CentOS 7.2 可视化桌面的安装和卸载       终于开始写第一篇CSDN博客了,心情有点儿小激动,前两天,小D在阿里云出购买了一台学生优惠的ECS云服务器,购买之前并没有学习过任何有关Lin...
  • o0DarkNessYY0o
  • o0DarkNessYY0o
  • 2016-07-29 16:45:19
  • 20115

Linux搭建SVN(CollabNet Subversion)服务器 可视化界面

最近一程序员友人给了我这样一个页面,顿时感觉SVN也可以这样管理的高大上,尽管svn已经不像当年如此风光,但是还有很多公司在使用它。   所以也是出于感兴趣就尝试着安装了一下,还算是比较顺利的,...
  • zhulin2012
  • zhulin2012
  • 2016-07-15 08:58:32
  • 2219

基于windows平台的linux服务器批量管理可视化工具

  • 2014年09月27日 20:45
  • 6.94MB
  • 下载

Ubuntu系统上搭建gitweb(可视化)服务器

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 1.下载gitlab包,这个包的下载速度会很慢,所以使用(wget -c)。-c, --continue 接着...
  • our_times
  • our_times
  • 2016-04-20 17:35:41
  • 1148

Linux下 Xshell+Xmanager, 远程运行可视化视图程序

一、安装xshell 二、安装Xmanager Enterprise 三、启动Xmanager - Passive 四、启动Xshell,远程连接Linux 五、执行 export DISPL...
  • namesliu
  • namesliu
  • 2015-10-21 16:51:53
  • 4948

阿里云服务器 ECS Linux 安装 VNC Server 实现图形化访问的方法

Ubuntu 安装 vncserver0、使用命令apt-get update更新软件源后尝试安装。 1、在 Ubuntu 上使用如下命令安装 vncserver:apt-get install v...
  • HeatDeath
  • HeatDeath
  • 2017-04-23 00:43:14
  • 2039

适用小白:为什么要用Jupyter?以及,如何在Linux的Ubuntu 14.04LTS上安装和启动Jupyter Notebook

首先,安装Jupyter,本文时基于Ubuntu14.04的LTS版本,即首先需要搭建一个适于安装JupyterNotebook的环境, 如果你是小白,请务必参考本博客的两篇博文: 1.Ubuntu安...
  • icehui2012
  • icehui2012
  • 2017-03-20 16:41:10
  • 14615

【手把手教你】如何在Linux系统搭建jupyter notebook

1、官网下载Anaconda2或3 for Linux 比如:Anaconda2-5.0.1-Linux-x86_64.sh 我下的这个 2、rz上传到linux,选一个未来你经常用到的...
  • langhailove_2008
  • langhailove_2008
  • 2018-01-19 21:33:31
  • 654

Jupyter notebook 服务器端部署

背景Jupyter notebook是由ipython notebook演变而来,jupyter notebook在数据分析时使用非常的方便,花了一晚上时间,详细看了下Jupyter notebook...
  • SA14023053
  • SA14023053
  • 2016-06-21 10:43:10
  • 6313
收藏助手
不良信息举报
您举报文章:配置远程Linux云服务器+可视化工作环境+jupyter notebook
举报原因:
原因补充:

(最多只允许输入30个字)