【Python】AnacondaにPygame zeroをインストールする
日経ソフトウェアの2023年1月号の付録②電子書籍に、Pythonでゲームを作成する記事がありました。
筆者のANACONDA環境ではPygame zeroのインストールから実行まで色々とトラブルが生じたので、その解決方法をご紹介します。
【本記事の結論】
①pgzeroを使う専用のPython3.10環境を作成し、pipでインストールする。
②Anaconda promptでの実行は問題なくOK。
③VS CodeとPyCharmでは問題なく実行できるが、Spyderではエラーになる。
【検証した環境】
OS:Windows 11 HOME
Anaconda Navigator:2.3.2
Pygame zero (pgzero):1.2.1
Windows用の「pgzero」を conda install できない
Anaconda prompt で、
>conda install pgzero
と入力して pgzero のインストールを試みたところ、パッケージが見つからずにインストールできませんでした。
PackagesNotFoundError: The following packages are not available from current channels:
- pgzero
Anaconda.orgでpgzeroを検索して確認すると、windows用の「pgzero」がありません。
'pip’でインストールしないとダメみたいなので、新しい環境を別に作ってインストールすることにします。
新しいPython3.10環境を作り pip で pgzero をインストールする
[game]という名前の Python3.10 環境を新しく作成し、そこに「pgzero」をインストールします。
①Anaconda promptを起動し、base環境からgameという名の環境を作成します。
(base) C:\Users\ユーザー名>conda create -n game python=3.10 -y
②game環境に切り替えて、pipコマンドでpgzeroをインストールします。
(base) C:\Users\ユーザー名>conda activate game
(game) C:\Users\ユーザー名>pip install pgzero
「pgzero」だけでなく「numpy」「pygame」も一緒にインストールされました。
Installing collected packages: pygame, numpy, pgzero
Successfully installed numpy-1.24.1 pgzero-1.2.1 pygame-2.1.2
conda listコマンドでインストールされているパッケージを念のため確認しておきます。
(game) C:\Users\ユーザー名>conda list
# packages in environment at C:\Users\ユーザー名\anaconda3\envs\game:
#
# Name Version Build Channel
bzip2 1.0.8 he774522_0
ca-certificates 2022.10.11 haa95532_0
certifi 2022.12.7 py310haa95532_0
libffi 3.4.2 hd77b12b_6
numpy 1.24.1 pypi_0 pypi
openssl 1.1.1s h2bbff1b_0
pgzero 1.2.1 pypi_0 pypi
pip 22.3.1 py310haa95532_0
pygame 2.1.2 pypi_0 pypi
python 3.10.8 h966fe2a_1
setuptools 65.5.0 py310haa95532_0
sqlite 3.40.0 h2bbff1b_0
tk 8.6.12 h2bbff1b_0
tzdata 2022g h04d1e81_0
vc 14.2 h21ff451_1
vs2015_runtime 14.27.29016 h5e58377_2
wheel 0.37.1 pyhd3eb1b0_0
wincertstore 0.2 py310haa95532_2
xz 5.2.8 h8cc25b3_0
zlib 1.2.13 h8cc25b3_0
日経ソフトウェアの2023年1月号の付録②電子書籍の「5日でできる!Pythonでゲーム作成入門」38ページのscreen.pyをここから実行したところ、問題なくエイリアンが左から右に移動していきました!
(game) 【screen.pyを保存したフォルダ名】>python screen.py
pygame 2.1.2 (SDL 2.0.18, Python 3.10.8)
Hello from the pygame community. https://www.pygame.org/contribute.html
統合開発環境からの実行
Anaconda Navigatorから無料で使用できる3つの統合開発環境で、screen.pyを実行したところ、VS CodeとPyCharmでは問題なく実行できました。
Spyder(5.3.3)では不具合あり
エディターでは「Actor」と「screen」が “Undefined name" エラーと表示されます。
実行してみると1回目は動作しますが、2回目以降は、
NameError: name 'Actor' is not defined
となり実行できません。
VS Code(1.74.2)はOK
こちらも同様にエディターでは「Actor」と「screen」の下に黄色い波線、 “Undefined name" エラーです。
しかし問題なく実行できます。
PyCharm Community(2022.2.4)はOK
こちらも同様にエディターでは「Actor」と「screen」の下に赤い波線、参照できないとなっていますが、実行は問題ありません。
まとめ:「pgzero」はAnacondaで専用環境をを作ってpipでインストールする
WindowsのAnaconda環境では、「pgzero」はpipでしかインストールできませんでした。
NumpyとPygameも一緒にインストールされるので、パッケージの依存関係で不具合を起こさないために、専用の環境を新規作成してインストールするのがおすすめです。