2013-05-28 131 views
4

在一些類似的問題中,這個特定的問題要麼沒有被建議的解決方法所解決,要麼問題已經被轉移到不同的主題。因此,我不得不問這樣一個問題:模塊對象沒有屬性'create_frame'

返回的錯誤是:

Traceback (most recent call last): 
    File "learn.py", line 8, in <module> 
    frame = simplegui.create_frame("Home", 300, 200) 
AttributeError: 'module' object has no attribute 'create_frame' 

這是相對於下面的代碼

import simplegui 
message = "Welcome!" 
def click(): 
    global message 
    message = "Good job!" 
def draw(canvas): 
    canvas.draw_text(message, [50,112], 48, "Red") 
frame = simplegui.create_frame("Home", 300, 200) 
frame.add_button("Click me", click) 
frame.set_draw_handler(draw) 
frame.start() 

我已經安裝了「simplegui」使用PIP開Ubuntu仍然是這個問題似乎沒有根據。請提出可能的解決方案。

回答

5

你正在運行到的問題是,有兩個庫稱爲simplegui。 The one on pypi(給你錯誤的那個)與the one for codeskulptor(你有示例代碼的那個)完全不同。如果你想使用codeskulptor的示例代碼,你必須在codeskulptor中運行你的代碼。如果你想在你的本地計算機上運行你的代碼,你將不得不放棄codekulptor示例代碼。

1

它可能因爲就像錯誤說心不是該模塊稱爲create_frame

我不是在屬性非常熟悉simlplegui但Im相當肯定它使用Tkinter的,所以你不需要創建框架GUI產生因爲Tk的它會爲你,但你必須有Tkinter的安裝

這裏有一個例子代碼:

import simplegui 
g = simplegui.GUI() 
def buttoncallback(): 
    g.status("Button Clicked!") 
g.button("Click me!", buttoncallback) 
g.button("Click me too!", buttoncallback) 
def listboxcallback(text): 
    g.status("listbox select: '{0}'".format(text)) 
g.listbox(["one", "two", "three"], listboxcallback) 
g.listbox(["A", "B", "C"], listboxcallback) 
def scalecallback(text): 
    g.status("scale value: '{0}'".format(text)) 
g.scale("Scale me!", scalecallback) 
g.run() 

你不需要實際上使框架剛剛給出的框架或無線的信息ndow然後Tk的自動使給定infomoation

遺憾的窗口,如果這是混亂的,但我希望它幫助

+0

我感謝你幫助。 是的變通幫助,但在http://www.codeskulptor.org/docs.html,它表明,這個屬性確實存在。事實上,這種毫無根據的錯誤會導致真正不舒服的發展,因此我想解決問題的癥結並解決問題。 –

+0

哦,這是真的,它確實說這是有趣的我試過你的代碼,並得到了同樣的錯誤它的怪異因爲我認爲simplegui只是讓TK更容易按鈕列表框等,然後Tkinter運行 – Serial

+0

也搜索谷歌其他人有過同樣的問題,你正在使用相同的確切代碼(即時通訊假設你從某個地方得到它),所以我不知道爲什麼它不會工作,如果它在那些文檔中,我猜可能有錯誤 – Serial

0

對不起,但這是上面提到的錯誤的熱門搜索結果,解決方案並沒有立即從我這裏的答覆中顯而易見。

該指南與離線項目How to integrate SimpleGUI with Python 2.7 and 3.0 shell整合simplegui提出了兩種codeskulptor和離線兼容性驗證碼:

try: 
    import simplegui 
except ImportError: 
    import SimpleGUICS2Pygame.simpleguics2pygame as simplegui 

如果您已經在本地安裝它不會運行異常的simplegui包,而會加載一個如上所述的包,與codeskulptor simplegui完全不同。

這個代碼可以讓你的項目,在codeskulptor如果你碰巧有一個叫做simplegui已經在本地安裝的軟件包,而無需修改代碼的其餘部分運行以及離線:

try: 
    import SimpleGUICS2Pygame.simpleguics2pygame as simplegui 
except ImportError: 
    import simplegui 
相關問題