【问题标题】:No module named tkinter on amazon ec2 centOS亚马逊 ec2 centOS 上没有名为 tkinter 的模块
【发布时间】:2017-12-20 22:34:37
【问题描述】:
我有一个包含以下导入的 python 代码:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
它在内部调用tkinter。我正在使用 装有 CentOS 的 Amazon EC2 服务器。我无法安装 tkinter,因为操作系统是无头的(没有 GUI)。 This link seems to be solution,但它适用于 Debian 操作系统,不适用于 CentOS。
我尝试安装参考this link 的桌面,但这也不起作用。它发出警告为“警告:组 GNOME 桌面不存在”。当我运行命令yum -y groups install "GNOME Desktop"
【问题讨论】:
标签:
python
linux
matplotlib
amazon-ec2
centos
【解决方案1】:
假设您根本不需要 GUI,而是让 matplotlib 在您的服务器上生成图像,以下可能会有所帮助:
使用没有交互元素的后端根本不需要 tkinter。
来自documentation:
有两种类型的后端:用户界面后端 [...] 和用于制作图像文件的硬拷贝后端(PNG、SVG、PDF、PS;也称为“非交互式后端”)。
设置后端的两种方式(也取自上面的链接):
-
你的 matplotlibrc 文件中的 backend 参数(见Customizing matplotlib):
backend : Agg
-
脚本内部
import matplotlib
matplotlib.use('Agg')
如果你使用use()函数,这必须在导入matplotlib.pyplot之前完成。
可能的非交互式后端: