NameError:未定义全局名称“gtk”

时间:2011-12-06 04:01:55

标签: import pygtk nameerror

我注意到'gtk'没有定义,我无法弄清楚它是什么意思,尽管我在运行时管理导入PYGTK。以下是代码:

import sys

importStatus = False

try:
    from gtk import *
    importStatus = True

except ImportError:
    print "PyGTK module does not exist. Can't launch GUI !"
    print "Please download and install GTK and PyGTK."
    importStatus = False

if importStatus:

    class gtkGUI():

        def __init__(self):
            print "gtkGUI imported"

        def startGUI(self):
            print "GUI Started"
            self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
            return None

以下是错误:

Traceback (most recent call last):
  File "mainGUI.py", line 14, in <module>
    gtk.startGUI()
  File "..../gtkGUI.py", line 25, in startGUI
    gtk.main()
NameError: global name 'gtk' is not defined

我该如何解决这个错误?感谢。

2 个答案:

答案 0 :(得分:3)

您需要使用PyGTK在系统上安装GTK。通常你对PyGTK的导入看起来像这样:

import pygtk
pygtk.require('2.0')
import gtk

如果查看PyGTK downloads,您会看到对安装GTK +的引用。确保你这样做(我认为你应该在安装PyGTK之前做到这一点,完全正确)。

答案 1 :(得分:3)

gtk未定义,因为您实际上从未将其作为模块导入。您正在使用from gtk import *将gtk模块的所有成员拉入当前命名空间,而不是整体导入模块。因此,在第25行中,您必须致电Window(WINDOW_TOPLEVEL)而不是gtk.Window(gtk.WINDOW_TOPLEVEL)

我建议使用import gtk而不是from gtk import *