模块对象没有属性' create_frame'

时间:2013-05-28 02:29:05

标签: python python-2.7

在一些类似的问题中,这个特定的问题要么没有通过建议的解决方案解决,要么问题已经动摇到不同的主题。因此,我不得不问这个问题:

返回的错误是:

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()

我在Ubuntu上使用pip安装了“simplegui”,但问题似乎没有根据。请提出可能的解决方案。

4 个答案:

答案 0 :(得分:5)

您遇到的问题是有两个名为simplegui的库。 The one on pypi(给你错误的那个)与the one for codeskulptor(你有示例代码的那个)完全不同。如果你想使用codeskulptor的示例代码,你必须在codeskulptor中运行你的代码。如果要在本地计算机上运行代码,则必须放弃codeskulptor示例代码。

答案 1 :(得分:1)

可能是因为就像错误一样,该模块中没有一个名为create_frame

的属性 我不太熟悉simlplegui,但我很确定它是一个使用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()

你不需要实际让框架只提供框架或窗口的信息然后Tk自动创建一个给定信息的窗口

抱歉,如果这令人困惑,但我希望它有所帮助

答案 2 :(得分:0)

很抱歉对于necro,但这是上述错误的最佳搜索结果,并且我已经从这里的回复中立即明白了该解决方案。

将simplegui与离线项目How to integrate SimpleGUI with Python 2.7 and 3.0 shell集成的指南建议使用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

答案 3 :(得分:0)

如果仅运行第二个导入,它应该可以工作:

import SimpleGUICS2Pygame.simpleguics2pygame as simplegui

但是请不要忘记安装PygameSimpleGUICS2Pygame