##対象読者
- PowerShellでPythonを実行したらMicrosoftStoreに飛ばされるようになった人
- PowerShellでPythonスクリプトを実行しても何も起らなくなった人
- パスは設定済みで元々Pythonが実行できていた人
##環境
- Windows10 Home
- Anaconda3
##結論
原因は不明ですが下記パスが参照されていると思われます。環境変数の順位を変更するなどしましょう。
Windows 10 May 2019 Update が原因のようです(@Miyukiumooさんありがとうございます)
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1188376.html
C:\Users\user\AppData\Local\Microsoft\WindowsApps\python.exe
##経緯
###Pythonが実行できない
いつも通りPowerShellでPythonスクリプトを実行しようと思ったら、何も起こらず処理が返ってきた。
コマンドプロンプトでもダメ。
試しにインタプリタを起動してみたらMicrosoftStoreに飛ばされた。
なにゆえ??
ちなみにこのとき、Anacondaの仮想環境では普通にスクリプト実行できてました。
前日ガラにもなくcondaのアップデートをしてみたらめちゃくちゃ時間かかったしめちゃくちゃconflictって表示されてたしCtrl-cで中断・再開とかしちゃったし、デフォルト環境が壊れちゃったのかな~とAnacondaを入れなおしてみたけど、ダメ。
###実行ファイルおよび環境変数の確認
Anaconda入れなおす前に確認するべきことでしたが。。。
環境変数の確認。ちゃんとpython.exeまでパスが通っています。
では、なにゆえ??
###コマンドが参照しているパスの確認
ここでやっと気付く。そもそもなんでエラーじゃなくてMicrosoftStoreにとぶんだろう。
コマンドが参照しているパスを確認してみると
> where python
C:\Users\user\AppData\Local\Microsoft\WindowsApps\python.exe
C:\Users\user\Anaconda3\python.exe
なんかおる
エクスプローラで確認してみると、比較的最近できたファイルのようでした。
怒りを込めて削除しようとするも弾かれました。
管理者権限で実行すれば消し去れるのかなと思いつつ、穏便に解決する道を選びました。
###環境変数の順位を変更する
コマンドを実行すると、環境変数のパスを走査して初めに見つかったファイルを実行します。
MicrosoftStoreに飛ばすpython.exeより先にAnaconda3のpython.exeがみつかるようにします。
これで無事にPythonが実行できるようになりました。
##まとめ
コマンドが実行できなくなったらまずコマンドが参照しているパスの確認をすべし。
何もしてないのにパソコンが壊れた と言いたくなるような状況でした。
後学のため、こんなことしたんじゃない?というのがあればご教示頂きたいです。