*** 当サイトはアフィリエイト広告を利用しています ***

【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も一緒にインストールされるので、パッケージの依存関係で不具合を起こさないために、専用の環境を新規作成してインストールするのがおすすめです。