2013-05-28 96 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 
相关问题