pygameがimportできない時の原因10選|ModuleNotFoundErrorの解決法【VSCode対応】

Pythonでゲーム開発やGUIプログラミングを学ぼうとするとき、最初の一歩として多くの人が導入するのが pygame です。
しかし、いざ import pygame と入力して実行すると、次のようなエラーが出て戸惑う方が少なくありません。
ModuleNotFoundError: No module named 'pygame'
「ちゃんとインストールしたのに、なぜimportできないの?」
そう思って検索する人が後を絶ちません。
実はこの問題、単純なインストールミスだけでなく、環境差・ファイル名の衝突・仮想環境の設定ミスなど、さまざまな要因によって引き起こされます。
本記事では、VSCode環境を中心にpygameがimportできない原因を10個に整理し、それぞれの状況に応じた解決策を分かりやすく解説します。
どのケースに該当するかを確認しながら、確実に問題を解決していきましょう。


pygameがimportできないときに出るエラーメッセージ
pygameのimportが失敗したときに最もよく表示されるのが、以下のエラーメッセージです。
ModuleNotFoundError: No module named 'pygame'
または、場合によっては次のような表示になることもあります。
ImportError: No module named 'pygame'
どちらも意味としてはほぼ同じで、Pythonが「pygame」というモジュールを見つけられないことを示しています。
この時点で「pygameがインストールされていない」か、「別のPython環境にインストールされている」かのどちらかであることがほとんどです。
エラーメッセージの読み方
Pythonのエラーメッセージは、「どのファイルで」「どんな原因で」問題が起きたかを順番に表示します。
最後の行に「ModuleNotFoundError: No module named ‘pygame’」とあれば、Pythonがpygameを探したが、現在の環境の中に見つからなかったという意味です。
つまり、単に「pygameがない」というよりも、“今実行しているPython環境” がpygameを認識していないということになります。
まず確認すべきポイント
次のコマンドを実行して、pygameがインストールされているかを確認してみましょう。
pip show pygame
結果として以下のような出力が出れば、pygameはすでにインストールされています。
Name: pygame Version: 2.5.2 Location: C:\Users\<user>\AppData\Local\Programs\Python\Python312\Lib\site-packages
何も表示されなかった場合は、まだpygameがインストールされていない、もしくは別のPython環境にインストールされている可能性が高いです。
それでは、楽しく学べるpygameの世界へ飛び込んでみましょう!



importできない原因をチェックする診断コードの紹介
pygameがimportできないとき、「何が原因か分からない」という場合に役立つのが、現在のPython環境をまとめて調べる診断コードです。
この記事で紹介している「よくある原因10選(VSCodeユーザー中心)」のどれが怪しいかを、ある程度まで自動で絞り込めます。
診断コード本体
以下のコードをコピーして実行してください。
import sys
import os
import subprocess
def run_cmd(cmd):
"""外部コマンドを実行して、標準出力を文字列で返す"""
try:
result = subprocess.run(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
shell=True,
)
return result.stdout.strip()
except Exception as e:
return f"[コマンド実行に失敗しました: {e}]"
def print_section(title):
print("\n" + "=" * 70)
print(title)
print("=" * 70)
def main():
print_section("① 基本情報(原因8: Pythonのバージョン など)")
print(f"Python実行ファイル : {sys.executable}")
print(f"Pythonバージョン : {sys.version.split()[0]}")
# 仮想環境かどうか(原因2,6,10の判断材料)
is_venv = hasattr(sys, "base_prefix") and sys.base_prefix != sys.prefix
print(f"仮想環境の使用 : {'はい(venvなど)' if is_venv else 'いいえ(グローバル環境)'}")
print(f"sys.prefix : {sys.prefix}")
print(f"sys.base_prefix : {getattr(sys, 'base_prefix', 'なし')}")
if sys.version_info < (3, 8):
print("→ 原因8: Pythonのバージョンが古く、pygameが対応していない可能性があります。")
print_section("② ファイル名のチェック(原因4: pygame.pyとの衝突)")
filename = os.path.basename(__file__)
print(f"この診断ファイル名 : {filename}")
if filename.lower() == "pygame.py":
print("NG: ファイル名が 'pygame.py' になっています。別の名前に変更してください。")
print(" (例)pygame_diag.py / game_main.py など")
else:
print("OK: ファイル名が 'pygame.py' ではないので、この原因の可能性は低いです。")
# 同じフォルダ内に紛らわしいファイルがないか軽くチェック
current_dir_files = os.listdir(os.path.dirname(os.path.abspath(__file__)))
if "pygame.py" in current_dir_files:
print("注意: 同じフォルダ内に 'pygame.py' という別ファイルが存在します。")
print(" 本物のpygameモジュールではなく、そのファイルを読みに行っている可能性があります。")
print_section("③ import pygame のテスト")
imported = False
try:
import pygame # noqa: F401
imported = True
print("OK: import pygame に成功しました。")
# 可能ならバージョンと場所も表示
try:
import importlib
pygame_module = importlib.import_module("pygame")
print(f"pygameのバージョン : {getattr(pygame_module, '__version__', getattr(pygame_module, 'ver', '不明'))}")
print(f"pygameモジュールの場所 : {pygame_module.__file__}")
except Exception:
pass
except Exception as e:
print("NG: import pygame に失敗しました。")
print(f"エラーの種類 : {type(e).__name__}")
print(f"メッセージ : {e}")
print("→ 原因1 / 原因2 / 原因3 / 原因5 / 原因6 / 原因7 / 原因9 / 原因10 のいずれかの可能性があります。")
print_section("④ pygameのインストール状況(原因1,2,6,10)")
show_current = run_cmd(f'"{sys.executable}" -m pip show pygame')
print("[python -m pip show pygame] の結果:")
print(show_current or "(出力なし)")
show_pip = run_cmd("pip show pygame")
print("\n[pip show pygame] の結果:")
print(show_pip or "(出力なし)")
installed_current = "Name: pygame" in show_current
installed_pip = "Name: pygame" in show_pip
if not installed_current and not installed_pip:
print("\n→ 原因1: どの環境にもpygameがインストールされていない可能性が高いです。")
elif not installed_current and installed_pip:
if is_venv:
print("\n→ 原因2 or 原因6:")
print(" グローバル環境など別の場所にpygameがあり、この仮想環境には入っていない可能性があります。")
else:
print("\n→ 原因5 or 原因7:")
print(" 'pip' コマンドが、今このPythonとは別のPython環境に紐づいている可能性があります。")
elif installed_current and not imported:
print("\n→ pygameはインストールされているようですが import に失敗しています。")
print(" 原因9: インストール途中で失敗した/壊れている可能性もあります。")
else:
print("\n→ 現在のPython環境にはpygameがインストールされています。")
print_section("⑤ pipとpythonコマンドの対応(原因5,7,9)")
pip_ver = run_cmd(f'"{sys.executable}" -m pip --version')
print(f"[{sys.executable} -m pip --version] の結果:")
print(pip_ver or "(出力なし)")
pip_cmd_ver = run_cmd("pip --version")
print("\n[pip --version] の結果:")
print(pip_cmd_ver or "(出力なし)")
if pip_cmd_ver and "python" in pip_cmd_ver.lower():
print("\n上の2つの出力に出てくる Python のバージョンやパスを見比べてください。")
print("違っている場合は、原因5(pipとpythonコマンドの対応ズレ)や原因7(PATH設定)が疑われます。")
print_section("⑥ 複数のPython / 仮想環境の有無(原因3,7,10)")
if os.name == "nt":
py_paths = run_cmd("where python")
pip_paths = run_cmd("where pip")
else:
py_paths = run_cmd("which -a python python3")
pip_paths = run_cmd("which -a pip pip3")
print("[python の場所候補]")
print(py_paths or "(見つかりませんでした)")
print("\n[pip の場所候補]")
print(pip_paths or "(見つかりませんでした)")
print("\n上記に複数のパスが表示されている場合、")
print("・VSCodeで選択しているPython(右下)")
print("・pygameをインストールしたPython")
print("が一致しているかを確認してください。")
print("一致していない場合は、原因3 または 原因10 の可能性があります。")
print_section("⑦ 推定される原因のまとめ")
if filename.lower() == "pygame.py" or "pygame.py" in current_dir_files:
print("- 原因4: ファイル名の衝突が強く疑われます。")
if sys.version_info < (3, 8):
print("- 原因8: Pythonのバージョンが古い可能性があります。")
if not imported:
if not installed_current and not installed_pip:
print("- 原因1: pygameがインストールされていない可能性が高いです。")
elif not installed_current and installed_pip and is_venv:
print("- 原因2/6: 仮想環境とグローバル環境のインストール先がずれている可能性があります。")
elif not installed_current and installed_pip and not is_venv:
print("- 原因5/7: pipとpythonの参照先がズレている可能性があります。")
elif installed_current:
print("- 原因9: インストールが壊れている、または途中で失敗した可能性があります。")
print("\n※ ここで表示される内容は「候補」です。")
print(" 詳しい直し方は、この記事の『よくある原因10選』の各項目を参照しながら進めてください。")
if __name__ == "__main__":
main()診断結果の読み方
- セクション「⑦ 推定される原因のまとめ」に、この記事で紹介している「原因1〜原因10」のうち、特に怪しいものが箇条書きで表示されます。
- それぞれの記事内の該当セクション(例:「pygameがインストールされていない」「pipとpythonコマンドの対応がズレている」など)を開き、そこに書かれている手順に沿って修正していけばOKです。
この診断コードを使うことで、「どこから手を付ければいいか分からない」という状態を避け、原因のあたりをつけてから詳細な解説に進めるようになります。
原因が分かったら、下記の各原因の対策部へ進んでください。

よくある原因10選(VSCodeユーザー中心)
ここからは、pygame が import できないときに考えられる代表的な原因を 10 個に分けて紹介します。
VSCode での開発を想定しつつ、仮想環境を利用している場合にも対応できるように解説しています。
pygameがインストールされていない
最も基本的な原因は、単純に pygameがまだインストールされていない というものです。
Pythonの標準ライブラリにはpygameは含まれていないため、自分で追加する必要があります。
対処法:
VSCode のターミナルを開き、以下のコマンドを実行します。
pip install pygame
インストール後、次のコマンドでバージョンが表示されれば成功です。
python -m pygame.examples.aliens
これで簡単なデモゲームが起動すれば、pygameのインストールは正常に完了しています。
仮想環境にpygameがインストールされていない
VSCodeでは、プロジェクトごとに仮想環境(venv)を使っている方も多いでしょう。
この場合、仮想環境をアクティブにしていない状態でインストールすると、別の場所にpygameが入ってしまうことがあります。
対処法:
仮想環境を有効化します(例:Windows)
.venv\Scripts\activate
macOS/Linux の場合は:
source .venv/bin/activate
その状態で再度インストールしましょう。
pip install pygame
VSCode の右下に表示されている Python 環境名が .venv になっているか確認しましょう。
VSCodeで選択されているPython環境が異なる
VSCode では複数の Python がインストールされていると、想定と違う環境でプログラムを実行してしまうことがあります。
この場合、別環境にpygameが入っていても、選択中の環境には存在しないため import に失敗します。
対処法:
- VSCode のコマンドパレット(
Ctrl + Shift + P)を開く - 「Python: Select Interpreter」を検索して選択
- 表示される環境リストの中から、pygameをインストールした環境を選択
確認のため、ターミナルで次のコマンドを実行します。
python -m site
出力されたパスが、pygameのインストール先と一致しているかを確認しましょう。
ファイル名が「pygame.py」になっている
意外と多いのがこのパターンです。
Pythonはモジュールをファイル名で識別するため、自分のスクリプトが pygame.py という名前だと、本物のpygameモジュールではなく自分のファイルを読み込もうとして失敗します。
対処法:
- 自分のファイル名を
pygame_test.pyなど別の名前に変更する - 同じフォルダ内にできた
pygame.pycや__pycache__フォルダを削除する
これで、Pythonが本来のpygameモジュールを正しく参照できるようになります。
pipとpythonコマンドの対応がズレている
システムに複数のPythonがインストールされている場合、pip が別のバージョンを参照していることがあります。
たとえば、python はPython 3.11を使っているのに、pip はPython 3.8に紐づいているというようなケースです。
対処法:
次のように python -m pip 形式でインストールを実行しましょう。
python -m pip install pygame
この方法なら、現在のPython実行環境に確実にpygameがインストールされます。



pygameがグローバル環境にしか入っていない
グローバル環境(システム全体)にpygameを入れても、仮想環境で実行すると認識されません。
VSCode でプロジェクトを管理している場合は、仮想環境ごとに独立してライブラリを管理するのが基本です。
対処法:
仮想環境を有効にしてから再インストールしてください。
.venv\Scripts\activate python -m pip install pygame
PATHや環境変数の設定が不適切
Windows環境では、Pythonをインストールした際に「PATHを追加」にチェックを入れ忘れると、コマンドが正しく動作しない場合があります。
結果として pip や python が異なる場所を参照し、pygameのインストールがずれることがあります。
対処法:
コマンドプロンプトで以下を実行してPythonのパスを確認
where python where pip
それぞれが同じフォルダ配下を指しているか確認し、異なる場合は再インストールまたは環境変数の修正が必要です。
Pythonのバージョンが古い
pygameは一部の古いPythonバージョン(例:3.6以前)ではサポートされていません。
最新のpygameを使うには、基本的に Python 3.8 以降 が推奨されています。
対処法:
公式サイトから最新のPythonをインストールしましょう。
その後、再度仮想環境を作り直してpygameをインストールします。
pipのバージョンが古く、pygameが正しくインストールされない
古い pip では依存関係の解決に失敗し、インストールが途中で止まることがあります。
対処法:
pipを最新版にアップグレードしてから、再度pygameをインストールします。
python -m pip install --upgrade pip python -m pip install pygame
別の仮想環境でpygameをインストールしている
複数のプロジェクトを扱っていると、仮想環境が複数存在するのが一般的です。
しかし、別の環境でインストールしたpygameは、他の環境からは参照できません。
対処法:
- VSCodeの右下ステータスバーで「Python環境名」を確認
- 必要であれば、環境を切り替えて再インストール
コマンドラインでも確認可能です。
where python pip list
両方の結果が一致していれば、正しい環境で動作しています。



pygameのインストール確認とテストコード
ここまでの手順でpygameをインストールまたは再インストールできたら、次は本当にimportできるか、そして正常に動作するかを確認しましょう。
単にエラーが出ないだけでなく、pygameの内部機能が正しく動くかをチェックすることが重要です。
pygameのバージョン確認
まずは、pygameが現在の環境に正しくインストールされているかを確認します。
コマンドで確認する方法:
VSCode のターミナルで次のコマンドを実行します。
python -m pygame.ver
または以下のPythonコードを実行してもOKです。
import pygame print(pygame.ver)
出力例:
2.5.2 (SDL 2.26.5, Python 3.12.4)
このようにバージョン情報が表示されれば、pygameはインポート可能な状態です。
ここでエラーが出た場合は、まだ環境が適切に設定されていない可能性があります。
その場合は第2章のチェック項目に戻って原因を再確認してください。
pygameの動作確認を行う
インポートが成功したら、次に ウィンドウを開いてみる簡単な動作確認 を行います。
以下のコードを新しいファイル(例:pygame_test.py)として保存し、実行してみましょう。
import pygame
import sys
# pygameの初期化
pygame.init()
# ウィンドウを作成
screen = pygame.display.set_mode((400, 300))
pygame.display.set_caption("pygame test")
# メインループ
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 背景を塗りつぶす(RGBカラー)
screen.fill((100, 150, 200))
pygame.display.update()
実行結果:
- 「pygame test」というタイトルの小さなウィンドウが開けば成功です。
- ウィンドウを閉じるとプログラムが終了します。
この段階で次のようなエラーが出る場合があります:
pygame.error: video system not initialized
これは、pygame.init() の呼び出しがない、または初期化が正しく行われていないときに発生するエラーです。
上記コードのように、pygame.init() を最初に呼び出すことを忘れないようにしましょう。
pygame.examplesを使って公式デモを実行する
pygameには、動作確認に便利な公式サンプルがいくつか含まれています。
これを使えば、pygameの描画・サウンド機能がすべて正常に動いているかを一度にチェックできます。
コマンドで実行:
python -m pygame.examples.aliens
このコマンドを実行すると、シンプルなシューティングゲームが起動します。
ここまで動作すれば、pygameが完全に動作していると判断して問題ありません。
また、当サイトのオリジナルゲーム:SuperNekoWorldのデモ版も無料配布していますので、良ければ是非↓↓のリンクから移動して遊んでみて下さい。

importが成功してもエラーが出る場合の補足
「import pygame」は成功するのに、ウィンドウが開かない/描画が止まる場合は、別の原因が考えられます。
代表的なものは次のとおりです。
| 現象 | 主な原因 | 対処法 |
|---|---|---|
| ウィンドウが一瞬で閉じる | pygame.event.get()がない | メインループ内でイベント処理を入れる |
| 画面が真っ黒で更新されない | pygame.display.update()を忘れている | ループの最後に追加 |
| 音が出ない | mixer初期化エラー | pygame.mixer.init()を明示的に呼ぶ |
これらはpygameの基本的な制御構造を理解すれば簡単に解決できます。
「importできた=pygameが使える」ではなく、「初期化して描画できる」まで確認しておくことが大切です。
確認後の環境バックアップもおすすめ
pygameの動作確認が完了したら、現在の環境をバックアップしておくと安心です。
特に仮想環境を使っている場合、再構築に備えてライブラリ一覧を保存しておきましょう。
コマンド例:
pip freeze > requirements.txt
これで現在の環境に入っているパッケージ一覧が requirements.txt に出力されます。
別のPCや環境で再現したいときは、以下のコマンドで同じ環境を再現できます。
pip install -r requirements.txt
それでも解決しない場合のチェックポイント

ここまでの手順をすべて実行しても ModuleNotFoundError が解消しない場合、問題はより根本的な部分にあるかもしれません。
ここでは、環境そのものの破損・設定不整合・キャッシュ問題など、見落としがちなポイントを順番に確認していきます。
パッケージキャッシュをクリアする
Pythonのパッケージ管理ツールである pip は、一度ダウンロードしたパッケージをキャッシュに保存しています。
これが破損していると、pygameが正しく再インストールされない ことがあります。
対処法:
以下のコマンドでキャッシュを完全に削除します。
pip cache purge
その後、再インストールを実行します。
python -m pip install --force-reinstall pygame
--force-reinstall オプションは、既存のインストールを無視して再構築を行うため、依存関係の問題がリセットされます。
仮想環境を作り直す
仮想環境(venv)の内部が破損している場合、pygameをインストールしても認識されないことがあります。
とくに長期間同じ環境を使っている場合や、複数のパッケージをアンインストールした後に発生しやすいです。
対処法:
1.既存の仮想環境を削除します。
rm -rf .venv
2.新しく仮想環境を作り直します。
python -m venv .venv
3.新しい環境をアクティブにしてpygameをインストール。
.venv\Scripts\activate # Windows source .venv/bin/activate # macOS/Linux python -m pip install pygame
これでほとんどの環境依存トラブルは解消されます。
VSCodeのPythonインタプリタ設定をリセット
VSCode内部でPythonインタプリタの設定が壊れている場合、どんなに正しい環境を使っても認識されないことがあります。
これは特に、Python拡張機能を複数回再インストールした後に発生することがあります。
対処法:
- VSCodeの 設定 (Ctrl + ,) → Python: Default Interpreter Path を検索
- 設定値を一度空にして保存
- コマンドパレットで再度「Python: Select Interpreter」を選び直す
また、settings.json に古い環境パスが残っている場合は削除してください。
権限(Permission)問題を確認する
WindowsやmacOSの一部環境では、Pythonのインストールディレクトリに書き込み権限が不足している場合があります。
特に、管理者権限でインストールしたPythonを一般ユーザー権限で操作している場合などに起こります。
対処法:
コマンドプロンプトまたはターミナルを管理者権限で開き、以下のように実行します。
python -m pip install pygame --upgrade --user
--user オプションを付けることで、現在のユーザー領域にpygameをインストールできます。
これで権限関連の問題を回避できます。
Pythonのインストールそのものを再構築する
まれに、Python自体の設定ファイルやレジストリ情報が壊れているケースがあります。
この場合は、Pythonを完全にアンインストールしてから再インストールするのが最も確実です。
手順:
- 既存のPythonをアンインストール
- 公式サイトから最新版(例:Python 3.12)をダウンロード
- インストール時に 「Add Python to PATH」 に必ずチェックを入れる
- 再度仮想環境を構築し、pygameをインストール
これで環境の再構築が完了します。
複数Pythonバージョンの競合を確認
python と python3 が別のバージョンを指しているケースもよくあります。
たとえば、macOSでは python がシステムの古いバージョン(2.x)を指していることがあります。
対処法:
以下のコマンドでバージョンを確認します。
python --version python3 --version
結果が異なる場合、pygameを使いたいバージョン側にインストールしましょう。
python3 -m pip install pygame
環境をリセットしても解決しないときの最終手段
ここまで行っても解決しない場合、次のような根本的なチェックを行いましょう。
- VSCodeの拡張機能「Python」を一度削除して再インストール
- システム全体でPythonが複数入っていないか確認
- 別のIDE(例:PyCharm, IDLE)でimportできるかテスト
他の環境でimportが成功する場合は、VSCode側の設定が原因と考えられます。
まとめ|環境を整理すればpygameは必ず動く
ここまで見てきたように、「pygameがimportできない」という問題の原因は、単一ではなく複数の要素が重なって起こることがほとんどです。
しかし、正しく順序立てて確認していけば、必ず解決にたどり着くことができます。
原因をもう一度振り返る
以下の表は、今回紹介した主な原因と解決方法を簡単にまとめたものです。
| 原因 | 主な現象 | 対処法 |
|---|---|---|
| pygameが未インストール | No module named 'pygame' | pip install pygame |
| 仮想環境に未導入 | importエラー | .venvをアクティブ化後に再インストール |
| Python環境の選択ミス | VSCodeで別環境を使用 | 「Python: Select Interpreter」で正しい環境を選択 |
| ファイル名がpygame.py | モジュール衝突 | ファイル名変更+__pycache__削除 |
| pip/pythonのズレ | install済でもimport不可 | python -m pip install pygame |
| グローバル環境のみ導入 | 仮想環境でimport不可 | 仮想環境内で再インストール |
| PATH設定ミス | pip/pythonの場所が異なる | PATH再設定または再インストール |
| Pythonが古い | インストール失敗 | Python 3.8以上を推奨 |
| pipが古い | install時に警告 | python -m pip install --upgrade pip |
| 環境破損 | 何をしても解決しない | 仮想環境またはPython自体を再構築 |
この表を確認しながら、どこで問題が起きているかを切り分けることが大切です。
特にVSCodeでは、Python環境が複数存在しているケースが最も多いため、まずはそこから確認すると良いでしょう。
最後に:pygameのトラブルは「学びの通過点」
プログラミングの学習を始めたばかりの頃は、「環境構築」でつまずくことが多いものです。
ですが、今回のようにトラブルを一つずつ解決していく過程は、実は非常に重要な経験でもあります。
pygameを正しく動かすために行った「仮想環境の理解」「pipの扱い」「PATHの確認」は、今後のPython開発全般で必ず役立ちます。
環境が整理されていれば、どんなライブラリもスムーズに導入できます。
ぜひ今回の経験を次のステップに活かしてください。


