Windowsで「'python' は内部コマンドまたは外部コマンドとして認識されていません」を修正する

beginner🪟 Windows2026-03-18| Windows 10/11, Python 3.x, コマンドプロンプト / PowerShell

Error Message

'python' is not recognized as an internal or external command
#windows#python#path#environment

状況

Pythonをインストールして新しいターミナルを開き、python --versionと入力したら、こんなエラーが表示された:

'python' は内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

あるいは昨日まで動いていたのに突然動かなくなった、という場合もあるでしょう。いずれにせよ、スクリプトが一切動かない状態なので今すぐ直す必要があります。

何が原因なのか

Windowsはコマンドを探す際に、PATHと呼ばれるディレクトリの一覧を順番に検索します。pythonと入力すると各ディレクトリにpython.exeがないか確認し、見つからなければコマンドは実行されずエラーになります。

よくある原因:

  • Pythonをインストールしたとき、インストーラーの「Add Python to PATH」のチェックを外したか見落とした——非常によくあるミスです。
  • 複数のPythonバージョンがインストールされていて競合している。
  • 別のソフトのインストールやアンインストールでPATHが変更・破損した。
  • Pythonインストール中にターミナルを開いたままにしていた。既存のセッションは新しいPATHの変更を反映しません。

まず確認する

設定を変える前にこのコマンドを実行してください:

where python

C:\Users\YourName\AppData\Local\Programs\Python\Python312\python.exeのような結果が返ってきた場合、Pythonはインストール済みでPATHに追加されていないだけです。何も返ってこない場合はPython自体がインストールされていないので、先にインストールしてから戻ってきてください。

こちらも試してみてください:

py --version

これは動くのにpythonでは動かない場合、Windows Python LauncherはあるけれどPATHにpythonのエイリアスが登録されていない状態です。以下の修正方法で解消できます。

修正1:ターミナルを再起動する

Pythonをインストールしたばかりであれば、開いているターミナルウィンドウをすべて閉じて新しく開いてください。PATHの変更は実行中のセッションには反映されません。これだけで約20%のケースが解決します——他を試す前にまずやってみましょう。

修正2:「Add to PATH」にチェックを入れてインストーラーを再実行する

インストール時にそのチェックボックスを飛ばしてしまいましたか?インストーラーにパスを追加させるのが最もきれいな解決策です:

  • 設定 → アプリ → インストールされているアプリに移動してPythonを見つけ、変更をクリック。
  • インストーラーのダイアログで再度変更を選択。
  • 「オプション機能」画面で次へをクリック。
  • 「詳細オプション」で**「Add Python to environment variables」**にチェックを入れる。
  • インストールをクリック。

新しいターミナルを開いて確認:

python --version

修正3:PATHにPythonを手動で追加する

インストーラーを再実行したくない場合は、直接パスを追加できます。

Pythonのインストール場所を確認する

where python
:: それで見つからない場合:
dir /s /b C:\python.exe 2>nul
dir /s /b "%LOCALAPPDATA%\Programs\Python\python.exe" 2>nul

よくあるインストール場所:

  • C:\Users\YourName\AppData\Local\Programs\Python\Python312\
  • C:\Python312\
  • C:\Program Files\Python312\

PATHに追加するディレクトリは2つ:Pythonのルートディレクトリ(python.exe用)とScriptsサブフォルダ(pippytestなどのツール用)。

システムのプロパティから設定する(GUI)

  • Win + Rを押してsysdm.cplと入力し、Enterを押す。
  • 詳細設定 → 環境変数に移動。
  • ユーザー環境変数Pathを選択して編集をクリック。
  • 新規をクリックして、2つのパスを別々の行に追加:

C:\Users\YourName\AppData\Local\Programs\Python\Python312 C:\Users\YourName\AppData\Local\Programs\Python\Python312\Scripts

  
  - すべてのダイアログで**OK**をクリック。

### PowerShellから設定する(より速い方法)

実際のPythonの場所に置き換えてください

$pythonPath = "C:\Users$env:USERNAME\AppData\Local\Programs\Python\Python312" $scriptsPath = "$pythonPath\Scripts"

[System.Environment]::SetEnvironmentVariable( "Path", $env:Path + ";$pythonPath;$scriptsPath", [System.EnvironmentVariableTarget]::User )


実行後はターミナルを閉じて再度開いてください——現在のセッションには変更が反映されません。

## 修正4:Python 2とPython 3の競合
環境によっては`python`がPython 2に、`python3`がPython 3に割り当てられているケースがあります。実際に何がインストールされているか確認しましょう:

where python where python3 where py


Python 3だけを使いたい場合、PATHの中でPython 3のディレクトリがPython 2のディレクトリよりも**前**に来るようにしてください。「環境変数」ダイアログを開いて**「上へ移動」**ボタンで順番を変更できます。

## 修正できたか確認する
**新しい**ターミナルを開いて——古いものは使わずに——以下の3つを実行してください:

python --version python -c "import sys; print(sys.executable)" pip --version


期待される出力:

Python 3.12.x C:\Users\YourName\AppData\Local\Programs\Python\Python312\python.exe pip 24.x.x from ... (python 3.12)


3つすべて動作していれば完了です。

## それでも直らない場合
Windowsが`python`コマンドを横取りして、Microsoft Storeにリダイレクトしていることがあります。実際にどのバイナリが実行されているか確認しましょう:

PowerShellで実行

Get-Command python | Select-Object Source


Sourceに`C:\Users\...\AppData\Local\Microsoft\WindowsApps\python.exe`のようなパスが表示されていますか?それはスタブ——Pythonを実行する代わりにStoreを開く偽のプレースホルダー——です。無効化する方法:

  - **設定 → アプリ → アプリの詳細設定 → アプリ実行エイリアス**を開く。
  - **python.exe**と**python3.exe**をオフに切り替える。
  - ターミナルを再起動して再試行する。

スタブを無効化することで、WindowsはPATHにある本物のPythonバイナリを使うようになります。

Related Error Notes