前言:最近玩机器学习项目,想把阿里云服务器(CentOS7)上python数据分析程序运行的结果可视化(绘制图表)。CentOS没有GUI,而且服务器在云上、平常通过本地Xshell终端与其进行远程交互,怎么弄?方法一,将需要可视化的数据保存到文件,然后将文件从服务器传回本地,利用自己熟悉的本地工具如Matlab、Python等对文件中数据进行可视化。方法二,不通过文件中转,直接在服务器上Python程序中运行数据可视化代码,然后通过一定的机制将运行结果(图形、图表)实时传输至本地电脑上进行显示。从本人最终实践结果来看,两种方法各有优劣,前者实现难度较低但相对繁琐,后者可视化过程实时便捷但实现过程较复杂且可视化交互响应时间受网络传输影响很大。本文主要是记录我在实现方法二过程中遇到的各种坑及其解决办法。
在进入主题前,有必要简单介绍标题中名词:
Xshell,一款知名度非常高的终端模拟软件,我们一般通过它来与远程主机进行SSH连接,其黄金搭档包括Xftp(用于文件传输)。
X11,就是X Window系统,用于在Unix系统上显示图形界面,11可以看作版本号。貌似CentOS7自带X11,要实现数据可视化,必须依靠它。
Xming,官方介绍是一个在 Microsoft Windows 操作系统上运行 X Window System 的自由软件。说白了,通过它可以将远程Linux主机上的图形显示在本地windows电脑上。我这用的是Xming,但是也有很多人用的是Xmanager,功能差不多。
Tk,这是一个非常强大GUI工具包。基本上所有操作系统都带有这个工具。Python中可视化核心模块tkinter依赖于它。
Tkinter,是Python中封装了Tk接口的GUI工具包。
Matplotlib,Python中绘制2维图形需要用到的库。在Python可视化过程中,一般将Matplotlib与tkinter结合,前者用于实现程序逻辑,后者用于界面绘制。
坑一:
1.问题描述:
在安装python3.5时,运行:./configure正常,但接下来运行:make,之后提示错误:
/usr/include/tk.h:21:3: error: #error Tk 8.5 must be compiled with tcl.h from Tcl 8.5
# error Tk<