MacBookPro
プロセッサ:2.3 GHz 8コアIntel Core i9 OS:Big Sur バージョン:11.1 を使用しています。
また、Pythonは「Download Python」と書かれているサイト(https://www.python.org/downloads/mac-osx/)から、インストールしました。Pythonのバージョンは3.9.0です。知識がないので、上手く説明できないのですが、ダウンロードでアプリケーションに加わったのは「IDLE」と「Python Launcher」のみです。
【ここからが質問です】
プログラミング雑誌で見かけたPygameZeroに挑戦してみたいと思い、色々調べながらインストールしてみましたがうまく動きません。
具体的にはsample.pyというファイルをデスクトップ上に作成し、
import pgzrun
pgzrun.go()
以上、2行のコードを書いてterminalから実行(python3.9 sample.pyと入力)した際に、
Unable to obtain graphics context for NSWindow (Mojave behavior)
Unable to obtain graphics context for NSWindow (Mojave behavior)
のように出て、それ以上うんともすんとも言いません。(しかも何故か同じメッセージが2行でます)
また、IDLEから実行してもPythonLauncherのロケットのようなアイコンがdockでぴょんぴょん飛び跳ねるだけでやはりうんともすんとも言いません。うまく動けば真っ暗なウインドウが表示される予定でした。
ただ、IDLEでも赤字のERRORメッセージが出るわけではないです。調べてみたところMacOSとPygameZero(Stable版)との互換性が保たれていないのかなと個人的には思いました。
ということで、一度PygameZeroをアンインストールし、terminalからPygameのバージョンを指定して再度インストール(pip3.9 install pygame==2.0.0.dev6 と入力)してみましたが、今度はインストール中に
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
pgzero 1.2 requires pygame<2.0,>=1.9.2, but you have pygame 2.0.0.dev6 which is incompatible.
以上のようなちょっと長めの赤字のERROR文が出ました。なんとなく指定したバージョン2.0.0.dev6というのがpgzero1.2と非互換であるのかなと思いましたが、とりあえず無視して試しにterminal上でsample.pyを実行。すると、
pygame 2.0.0.dev6 (SDL 2.0.14, python 3.9.0)
Hello from the pygame community. https://www.pygame.org/contribute.html
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pgzero/runner.py:2: RuntimeWarning:** use mixer: No module named 'pygame.mixer'**
(ModuleNotFoundError: No module named 'pygame.mixer')
pygame.mixer.pre_init(frequency=22050, size=-16, channels=2)
Traceback (most recent call last):
File "/Users/y.o/Desktop/sample.py", line 1, in <module>
import pgzrun
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pgzrun.py", line 13, in <module>
from pgzero.runner import prepare_mod, run_mod
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pgzero/runner.py", line 2, in <module>
pygame.mixer.pre_init(frequency=22050, size=-16, channels=2)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pygame/init.py", line 59, in getattr
raise NotImplementedError(missing_msg)
NotImplementedError: mixer module not available (ModuleNotFoundError: No module named 'pygame.mixer')
以上のような文が出て、やはりうまく動きませんでした。個人的には太字にした部分(僕が勝手に太字にしました)が主たる原因なのかなと思い、mixerなるものをterminalからインストール(pip3.9 install mixerと入力)してみましたが、再度試しても結果は変わりませんでした。
色々調べながらやれるだけのことはやってみたのですがどうしても上手くいきませんでした。どなたかアドバイスをいただけると幸いです。また、もしよろしければPygameとPygameZeroとの関係性についても教えていただきたいです。PygameZeroをやりたい場合はPygameをインストールしても上手くいかないのでしょうか。
上手くまとめられず、長文になってしまいました。どうぞよろしくお願いします。