質問: 600 def draw(): screen.clear() screen.draw.circle((400, 300), 30, 'white') pgzrun.go()``` ### 試したこと ターミナルでは、pgzero Pygame python3.8.4が現行のバージョンでインストールされています。 あるpygame zeroのサイトでは以下のような案内があります↓ 「しかし IDLE や Edublocks などの IDE 上からは python だと実行できますが、 pgzrun は実行できません。 Pygame Zero は python を使い、普通の Python プログラムとして実行する方法も提供しています。そうするにはまず、プログラムの冒頭に次の行を追加します」 ここに問題に対して試したことを記載してください。 IDLEではできないということで、vc codeをダウンロードして冒頭にimport pgzrunと入力しましたが、ダメでした。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: > > File "/Users/わたしの名前/Downloads/import pgzrun.py", line 1, in > > > ファイル名の所にコードが書かれてます? 出来れば、ファイル名はスペースを含まないようにしてください。 直接今回のエラー原因ではありませんが、他の問題に繋がります。 仮にファイル名 `my_program.py` として保存します。 まずはターミナルで動作確認、 `python my_program.py` として実行して見て下さい。 `python` の部分は環境に合わせて、ライブラリをインストールした環境のモノを使います。 > > ModuleNotFoundError: No module named 'pgzrun' > > ターミナルでは、pgzero Pygame python3.8.4が現行のバージョンでインストールされています。 > > > (確認) 何処にインストールして、 どのようにインストールされたことを確認しましたか? インストール済みで ModuleNotFoundError が出る場合、IDEからは ライブラリがインストールされてない環境のPythonが使われてます。 確認手順: * pgzeroが何処にインストールされたか確認しましょう * Pythonのバージョンを確認した後に、 * ターミナルで `python -c "import pgzrun"` * IDLE等であれば、対話モードのところに `import pygrun` と打ち込んでみてください。 ※ pgzrunは使い方が特殊なモジュールで、 Pythonファイル内から import されるのを想定していて、 そうでない場合は ImportError を出します。 ここで確認したいのは、pgzrunがインストールされているかどうかなので、 (対話環境では)ImportError が出るのが期待した動作です。 モジュールが見つからない場合は、ModuleNotFoundError が出ます。 対処方法: * VS code であれば環境切り替えができるはずです。 * IDLE の場合は、ライブラリがインストールされた環境の IDLE を開きます `python -m idlelib` で IDLEを起動 > > IDLEではできないということで、vc codeをダウンロードして冒頭にimport pgzrunと入力しましたが、ダメでした。 > > > IDE (IDLE や VS Code)で実行する場合の案内です。 詳細: PyGame Zero のコードは、`pgzrun` コマンドにより実行するので IDEで実行する場合は、実行時のコマンドを適切に設定する必要があります。 上記の `import pgzrun` と `pgzrun.go()` というのは、 PyGame Zero を使ったスクリプトを `python` コマンドで実行する場合の対応方法です。