在 Amazon Linux 上安装 Tkinter
Posted
技术标签:
【中文标题】在 Amazon Linux 上安装 Tkinter【英文标题】:Install Tkinter On Amazon Linux 【发布时间】:2017-04-02 04:57:15 【问题描述】:我正在使用 Amazon Linux ec2 机器。当我尝试在 virtualenv 中运行 Python 脚本时,我收到以下消息:
File "/home/sp/Envs/crispor/local/lib/python2.7/dist-packages/matplotlib/externals/six.py", line 80, in _import_module
__import__(name)
ImportError: No module named Tkinter
据我了解,Tkinter 应该是 Python 安装的一部分。但不知何故,它不是。这些不起作用 -
sudo yum install python-tk
sudo yum install tkinter
如何安装 Tkinter?还是我应该这样做,因为它应该是 Python 安装的一部分?
【问题讨论】:
据我所知,Amazon Linux ec2
就像 headless
机器一样工作——这意味着没有监视器——(也没有图形环境),所以它不能显示任何 GUI——甚至是 Tkinter。
确实如此。我也不想显示任何 GUI。但是项目中的模块之一是这样做的:import matplotlib.pylab as plt
。这级联到导入 Tkinter。
我使用来自 EC2 实例的 X 转发,因此 Tkinter 可能很有用
【参考方案1】:
您不想(并且可能不能)在该服务器上安装 tkinter。将 matplotlib 配置为使用非交互式后端。
把这个放到your matplotlibrc
file:
backend : agg
更新这对于 matplotlib >= 3.0.0 来说不是必需的,根据documentation "[h]eadless linux 服务器(由未定义的 DISPLAY 环境识别)将不会选择GUI 后端”。
【讨论】:
文件位置:/usr/local/lib64/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc 但是,如果您更新 matplotlib,您将丢失您的编辑。 -- 有制作文件副本的说明,这样您就不会丢失所做的编辑。【参考方案2】:添加到@Goyo。您也可以在代码中将模式切换为 agg。
import matplotlib
matplotlib.use('agg',warn=False, force=True)
from matplotlib import pyplot as plt
print "Switched to:",matplotlib.get_backend()
【讨论】:
【参考方案3】:能否提供python版本信息?
1- 尝试安装这个:
yum install python-tools
此软件包使用 tkinder,因此可以提供帮助。
2-如果你使用python3:
sudo yum install python3-tkinter
3- 下载并安装软件包: http://rpm.pbone.net/index.php3?stat=3&search=python27-tkinter&srodzaj=3&dist[]=79
【讨论】:
我试过sudo yum install python-tools
。它告诉我“没有可用的软件包 python-tools”
试试:yum install python-setuptools
python-setuptools 已经安装在机器上。 Package python26-setuptools-12.2-1.32.amzn1.noarch already installed and latest version
虽然virtualenv里面的Python是Python2.7以上是关于在 Amazon Linux 上安装 Tkinter的主要内容,如果未能解决你的问题,请参考以下文章
如何在运行 nginx 的 Amazon Linux 上安装 phpMyAdmin