2011-12-06 202 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

相關問題