Linux 服务器机器学习开发环境部署

对于服务器系统,
服务器选用的Linux系统,推荐的有3个选择,视情况不同而选择:

  1. Debian系(服务器主要用Debian的stable分支,ubuntu server虽然可以了,但是稳定性不放心)
  2. RedHat系(如果不想购买服务,那么就是CentOS这个分支了,fedora社区版本,不适合)
  3. BSD系(FreeBSD,OpenBSD,NetBSD)

由于我要对接的服务器的原因,我选择的是 红帽企业Linux.6.4.服务器版,如果是个人开发者,建议CentOS会好一点。
下载链接为:

[红帽企业Linux.6.4.服务器版].rhel-server-6.4-x86_64-dvd[ED2000.COM].iso

当然,对于我这种没有接触过服务器开发的菜鸟来说,在 windows 平台下安装个虚拟机开发是最好的选择了。
说到虚拟机,本来想要选用 VMware 的,结果一时手滑,下载了 VirtualBox
结果就将就着用了,没想到后来才发现是个大坑,后面再说。。

虚拟机 Linux 系统安装

对于虚拟机 Linux 安装网上的教程有很多,我就不细说了,看了很多篇之后,我觉得下面这篇是最适合 rhel
系统的安装教程

如何正确安装rhel 6.4

大部分都是按照教程走就行了,不过在用 VirtualBox 新建虚拟机时,我想要提两点:

  1. 选择虚拟机在物理硬盘的存储方式时,不要选择动态分配,选固态分配
  2. 选择所需要的虚拟机的硬盘大小不要选默认的8g,最好选10g以上。

这样可以避免后来开发会遇到的一个坑。
在安装过程中,我是没有选择安装桌面的,因此启动的时候都是命令行形式,用 login in:root你之前设定的密码 就可以登录了。

Linux 系统 Python 升级

Linux 系统默认是有内置 Python 环境的,不过版本都比较低,很多新的特性和库都支持不了,因此升级 Python 是必须的。
目前,Python 有两个版本,一个是 2.x 版,一个是 3.x 版,这两个版本是不兼容的,因为现在 Python 正在朝着3.x 版本进化,在进化过程中,大量的针对 2.x 版本的代码要修改后才能运行,所以,目前有许多第三方库还暂时无法在 3.x 上使用。
所以,Python 的版本我选择的是 2.7 的版本,我在里面随便挑了 2.7.12 的版本,当然你要下载别的也可以,只需要在 Python 官网找到并修改一下下载链接就行。

  1. 下载所需的Python
       # wget  --no check certificate   
         http://python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
  1. 解压
       # xz -d Python-2.7.12.tar.xz
       # tar xvf Python-2.7.12.tar
  1. 进入解压后文件夹并编译
       # cd Python-2.7.12
       # ./configure --prefix=/usr/local/python2.7
       # make
       # make install
  1. 备份原有的 python
       # mv /usr/bin/python  /usr/bin/python2.6
  1. 建立新的软链接
       # ln -s /usr/local/python2.7/bin/python  /usr/bin/python
  1. Python 2.7安装成功


    Python.png

yum 部署

RedHat 的 yum 源需要注册和付费,因此我整理了 RedHat 安装 CentOS 的方法,亲测成功。

  1. 下载安装包
    可通http://mirrors.163.com/centos下载,但有时候公司网络用不了,故这里提供我下载好的 http://pan.baidu.com/s/1pL9KEzL
  2. 卸载 RedHat 内置的 yum
       # rpm -qa | grep yum | xargs rpm -e --nodeps
  1. 安装 CentOS 的 yum
       # rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
       # rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
       # rpm -ivh yum-3.2.29-40.el6.centos.noarch.rpm 
         yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm
        (这两句要同时输入,因为他们之间有依赖关系)
  1. 安装 CentOS6-Base-163.repo
    将第一步下载的 CentOS6-Base-163.repo 拷贝到 /etc/yum.repos.d 中,并将该文件夹中的 rhel-source.reporhel-source.repo.bak 作备份。
  2. 修改 yum 调用
    打开 yum 文件
       # vim /usr/bin/yum

把首行的 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

  1. 清除原有缓存
       # yum clean all
  1. 获取 yum 列表
       # yum makecache  

得到如下结果:


yum.png

至此 yum 安装完成,可以 yum install 安装程序了。

机器学习库部署

pip 是一个 Python 包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具,所以,为了不花很多精力去找离线安装文件,推荐采用 pip 工具来自动下载。

  1. 下载安装脚本
    get-pip.py
  2. 安装 pip 工具
       # python get-pip.py
  1. 采用 pip 工具安装库
       # pip install numpy
       # pip install scipy
       # pip install matplotlib
       # pip install sklearn

至此,Linux下机器学习开发环境就基本部署好了。

填坑

文件共享

由于手滑将就了 VirtualBox 是有代价的,在实际操作的时候,windows 和虚拟机之间文件共享就是个坑,不仅网上资料很少,而且还不能用,最后我还是靠 Xshell 解决了这个问题(不过那传输速度实在不敢恭维)
Xshell 的教程网上有,但是不知道什么原因,那个通过 # ifconfig 看 eth0 的 ip 然后建立连接的方法我是不成功的。
如果你们也设置不成功的话,那么就用我探索出来的一个办法吧。

首先,你的 VirtualBox 设置网卡1为 Host-Only ,网卡2为 网络地址转换(Nat),使用# ifconfig 查看 eth1 的 ip地址 ip1

IP1.png

然后去适配器配置中心

IP2.png

查看VirtualBox Host-Only Network的属性,如果是动态ip地址的话,就把它改成固定ip,然后ip的前两段保持不变,后两段自己定义,记下 ip 地址,即 ip2

接下来去 VirtualBox 的网卡2设置,点开高级——端口转发,新建规则,把 ip1ip2 填上去,端口默认22。

Set.png

最后,Xshell 用 ip2 和端口值 22 就可以顺利登录到你的虚拟机了,然后在 Linux 上通过 # yum -y install lrzsz 安装好服务后,就可以使用# rz 和# sz 可以轻松实现文件共享。

Tkinter 不能使用的问题

在 Linux 下使用 Python 的时候,我发现一旦使用绘图命令,就会出现 Tkinter 不存在的情况,Tkinter 模块("Tk 接口")是 Python 的标准 Tk GUI 工具包的接口,没有它是无法绘制图形界面的(当然,如果要绘制图形你的 linux 必须处于桌面图形工作状态而不是命令行模式)。
注:因为问题已经解决了,懒得去重复一遍,所以我会简单点说,如果不是很特殊的话,我还是建议在Windows环境下绘图就好了。
首先,你需要 yum 安装 tk-develtcl-devel,然后重新编译 python ,这时候你需要先去找你的 tk 和 tcl 安装在哪里,还有 tk.htcl.h 在哪一个位置,一般是在 /usr/lib64/usr/include 里,然后打开有 python 编译文件的那个目录,输入
# vim ./Modules/Setup.dist ,修改以下内容:

_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \  #去掉注释符
-L/usr/local/lib  \                                    #换成 tk 和 tcl 链接库的目录                  
-I/usr/local/include  \                             #换成 tk.h 和 tcl.h 的目录
     -ltk8.2  -ltcl8.2   \                             #换成安装的 tk 和 tcl 的版本号
-lX11                                                    #去掉注释符                                       

例如下图


image.png

修改好后执行编译指令,和原来安装 Python 一样,如果重新编译后的 Python 调用 numpy 等出错,那就把 /usr/local/python2.7/lib/python2.7/site-packages 里对应的库相关文件删掉,重新 pip 安装一下这些库就好了。

总结

这篇主要介绍了 Linux 下 python 开发环境部署的工作,网上资料虽然比较多,但自己去操作还是有不少波折的,故希望笔者整理探索的过程能给 Linux 小白爱好者带来方便,避免走太多弯路,足矣。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • 本文为《爬着学Python》系列第十一篇文章。 之前写过一篇Python简单入门指北-环境配置,因为是为了新手准备...
    SyPy阅读 2,121评论 0 1
  • Python为主流开发语言, 用python 开发的程序越来越多。 方便的是大多linux系统里面都默认集成了py...
    53921f46e0b9阅读 63,694评论 3 18
  • 【悠哉·周日主题茶会预告】 躁动的声息像尘埃慢慢落下, 那清凉钻进心里, 像是惊起了, 到来的秋意。 在心里荡漾几...
    悠哉茶院高甜莎阅读 224评论 0 1
  • 仅有紧迫感,没有行动力,一无长进,
    linglingchai阅读 115评论 0 0
  • 房间里婢女们全部都在看笑话,丞相府的大小姐前天被二小姐推入池塘差点淹死,而这二小姐又是四王爷的未婚妻这不,三位王爷...
    萝洛菩提阅读 162评论 0 1