2011-12-06 131 views
1

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

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 

我应该如何解决这个问题?谢谢。

回答

3

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

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

如果你看一下PyGTK downloads,你看要安装GTK +的参考。确保你这样做(我认为你应该在安装PyGTK之前做到这一点,以便完全正确)。

+0

谢谢。你是对的:D。 – thotheolh

3

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

我会推荐使用import gtk而不是from gtk import *

+0

谢谢。你说得对:D也是。 – thotheolh

相关问题