【问题标题】:Cannot Import GTK in Ubuntu Python 2.7无法在 Ubuntu Python 2.7 中导入 GTK
【发布时间】:2011-08-10 19:29:58
【问题描述】:

我正在尝试在 Ubuntu Python 2.7 中导入 GTK,但出现以下错误。 PyGTK 导入就好了。当我import gtk 时,我收到以下错误:

Exception in Tkinter callback Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
    return self.func(*args)
File "/usr/lib/python2.7/idlelib/MultiCall.py", line 167, in handler
    r = l[i](event)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1140, in enter_callback
    self.runit()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1181, in runit
    more = self.interp.runsource(line)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 619, in runsource
    return InteractiveInterpreter.runsource(self, source, filename)
File "/usr/lib/python2.7/code.py", line 87, in runsource
    self.runcode(code)
File "/usr/lib/python2.7/idlelib/PyShell.py", line 759, in runcode
    self.tkconsole.endexecuting()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 940, in endexecuting
    self.showprompt()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1205, in showprompt
    self.resetoutput()
File "/usr/lib/python2.7/idlelib/PyShell.py", line 1217, in resetoutput
    if self.history:
File "/usr/lib/python2.7/idlelib/PyShell.py", line 64, in idle_showwarning
    lineno, file=file, line=line))
TypeError: idle_formatwarning() got an unexpected keyword argument 'file'

我该如何解决这个问题?

【问题讨论】:

  • 打开一个终端(应用程序>附件终端)并在命令提示符下键入python。在>>> 之后输入import gtk,看看它现在导入是否没有任何错误。

标签: python ubuntu gtk pygtk python-idle


【解决方案1】:

这是一个空闲的bug。查看该错误消息的最后一行:

File "/usr/lib/python2.7/idlelib/PyShell.py", line 64, in idle_showwarning
    lineno, file=file, line=line))
TypeError: idle_formatwarning() got an unexpected keyword argument 'file'

这表示 warning.idle_showwarning 方法没有参数“文件”。

果然看/usr/lib/python2.7/warnings.py

def formatwarning(message, category, filename, lineno, line=None)

没有这样的论点。

这显然已在源代码管理中得到解决,但我认为它尚未发布。我会破解 /usr/lib/python2.7/idlelib/PyShell.py 文件并从第 64 行删除有问题的参数。

然后再试一次...

【讨论】:

  • 解决了!对于不知道如何编辑该文件的任何人,请转到终端并输入“sudo nano /usr/lib/python2.7/idlelib/PyShell.py”。
【解决方案2】:

在 IDLE 之外尝试一下。这里的错误是在 IDLE 中,而不是你的代码。

创建一个包含import gtk 的新脚本并将其保存在任何地方。

从命令行,在您的脚本所在的目录中,运行python whatever_your_scripts_name_is.py

查看是否出现错误。您可能无法在 IDLE 中import gtk

编辑:在 Ubuntu 上的某些情况下显然有 problem with GTK and IDLE

尝试不同的 Python shell;我推荐IPython,您可以使用 Synaptic 或sudo apt-get install ipython 安装它。

【讨论】:

  • 我可以在我的 Windows 7 安装的 Python 上导入 gtk,所以不是这样。另外,gtk.py 在哪里?搜索结果一无所获。
  • 我不知道它在哪里。 IDLE 仍在掩盖真正的错误(否则错误与 IDLE 的 Ubuntu 版本有关),所以你仍然应该这样做,它会清除错误的原因 - gtk.py 的位置无关紧要.
  • 它说“没有这样的文件或目录。”但是,对于功能性 pygtk.py 也是如此。
  • 你尝试过python gtk.py吗?那不是我要求你做的。创建一个新的.py 文件,并将import gtk 放入其中,然后运行新创建的脚本。请不要像“它所说”那样报告错误。在您的帖子中发布实际的控制台文本,以便我知道“它”是什么以及完整的错误。
  • 啊,误读了您的原始帖子。我按照指示创建了一个脚本,只有“import gtk”行,我保存它并在终端中运行它。没有错误。但是,它仍然会在 IDLE 中引发同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 2015-09-13
  • 2013-02-27
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
相关资源
最近更新 更多