【问题标题】:Install Tkinter On Amazon Linux在 Amazon Linux 上安装 Tkinter
【发布时间】: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 可能很有用

标签: python linux amazon-ec2 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
    猜你喜欢
    • 2017-09-22
    • 2014-09-19
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2020-11-14
    相关资源
    最近更新 更多