概要
PowerShellなどにおいてpython
コマンドを実行した際にPython
が実行されずMicrosoft Storeが開くという問題が起きた.
この問題を解決し,正しくPython
が実行されるようにする.
状況
インストール時の手順
- 公式のPythonインストーラ(python-3.12.4-amd64.exe)をダウンロード
- ユーザ権限,add pathにチェックを付けPythonをインストール
パスなどの確認
powershell,コマンドプロンプトでpythonコマンドを実行したが,どちらもmicrosoft storeを開いた.システムの環境変数のユーザの環境変数において,pythonのパスが追加されたことを確認.詳細は以下の通り.
ユーザの環境変数 → Path
C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python312\Scripts\
C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python312\
C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Launcher\
C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps
...
先に述べると,一番下のC:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps
の部分が今回の問題の原因に関わっていた.
解決手順
原因
まず,この問題の原因として,pythonコマンドを実行した際,
C:\Users\<ユーザー名>\AppData\Local\Programs\Python\PythonXX\python.exe
ではなく
C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps\python.exe
および
C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps\python3.exe
の方のpython.exe
が実行されていたためである.
パスの順序的にはC:\Users\<ユーザー名>\AppData\Local\Programs\Python\PythonXX\python.exe
の方がMicrosoftのものよりも上にあったが,Microsoftのものが優先されて呼び出されていたらしい(これの原因は不明).
方針
ステップ1: Windowsの環境変数を確認
状況において既に環境変数を確認してあるが,一応,確認・追加の方法を記載する.
- システムの環境変数 → 環境変数 → <ユーザ名>のユーザ環境変数.
- Pathの中に公式インストーラでインストールしたPythonのディレクトリがリストに含まれていることを確認する.
例:C:\Users\<ユーザー名>\AppData\Local\Programs\Python\PythonXX\
およびC:\Users\<ユーザー名>\AppData\Local\Programs\Python\PythonXX\Scripts\
- 含まれていない場合は、「新規」ボタンをクリックして上記のパスを追加.
ステップ2: Microsoft Store版のPythonショートカットを削除
C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps
ディレクトリにあるPythonのショートカットが原因で問題が発生している.このパスを消してもよいが,影響の範囲が大きくなるため,python.exe
,python3.exe
のみを削除する.手順を以下に示す.
管理者権限でコマンドプロンプトを使用して削除:
- Windowsの検索バーに「cmd」と入力し、「管理者として実行」を選択します。
- 以下のコマンドを入力してファイルを削除します。
del C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps\python.exe del C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps\python3.exe
これでもしもできなかった場合は,以下を行い,ファイルの権限を変えることで削除できるようにする.
-
エクスプローラーを開く:
-
C:\Users\<ユーザー名>\AppData\Local\Microsoft\WindowsApps
に移動.
-
-
ファイルの所有権を変更:
- 削除したいショートカットファイル(
python.exe
およびpython3.exe
)を右クリックして「プロパティ」を選択. - 「セキュリティ」タブに移動し,「詳細設定」ボタンをクリック.
- 「所有者:」セクションの「変更」リンクをクリックし、自分のユーザーアカウントを選択して「OK」をクリック.
- 「所有者をサブコンテナとオブジェクトに置き換える」チェックボックスをオンにし、「適用」をクリック.
- 削除したいショートカットファイル(
-
アクセス許可を変更:
- 「セキュリティ」タブに戻り、「編集」をクリック.
- 自分のユーザーアカウントを選択し、「フルコントロール」のチェックボックスをオン.
- 「適用」および「OK」をクリックして変更を保存.
Pythonの動作確認
コマンドプロンプトまたはPowerShellを再起動し、以下のコマンドを実行してPythonが正しく動作するか確認.
> python --version
Python 3.12.4
できた.