5

同様の質問のいくつかでは、この特定の問題は、提案された回避策によって解決されないか、質問が別のトピックに迷い込んでいます。したがって、私はこの質問をしなければなりませんでした:

返されるエラーは次のとおりです。

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

4 に答える 4

5

あなたが直面している問題は、simplegui と呼ばれる 2 つのライブラリがあることです。pypiのもの (エラーが発生しているもの) は、codeskulptorのもの (サンプル コードがあるもの) とはまったく異なります。コードスカルプターのサンプルコードを使用したい場合は、コードをコードスカルプター内で実行する必要があります。ローカル コンピューターでコードを実行する場合は、codeskulptor のサンプル コードを破棄する必要があります。

于 2013-05-28T04:28:26.927 に答える
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は指定された情報でウィンドウを自動的に作成します.

これが紛らわしい場合は申し訳ありませんが、お役に立てば幸いです

于 2013-05-28T02:47:29.563 に答える
0

necro には申し訳ありませんが、これは上記のエラーのトップ検索結果であり、解決策は既にここにある返信からすぐにはわかりませんでした。

simplegui をオフライン プロジェクトと統合するためのガイドHow to integration SimpleGUI with Python 2.7 and 3.0 shellは、codeskulptor とオフラインの両方の互換性のために次のコードを提案しています。

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

既にローカルにインストールされている simplegui パッケージがある場合、例外は実行されず、代わりに、上記のように、codeskulptor simplegui とはまったく異なるパッケージが読み込まれます。

このコードを使用すると、コードの残りの部分を変更することなく、simplegui という名前のパッケージがローカルに既にインストールされている場合に、プロジェクトを Codeskulptor とオフラインで実行できます。

try:
    import SimpleGUICS2Pygame.simpleguics2pygame as simplegui
except ImportError:
    import simplegui
于 2016-03-09T07:57:40.337 に答える
0

2 番目のインポートを単独で実行するだけで機能するはずです。

import SimpleGUICS2Pygame.simpleguics2pygame as simplegui

ただし、忘れずにインストールPygameしてください。SimpleGUICS2Pygame

于 2019-09-13T05:16:08.823 に答える