Help us understand the problem. What is going on with this article?

【備忘録】Pythonコマンドが認識してくれなくなった(Windows10のアップデートが関係?)

やっほー! こんにちはー!
物理好きのオザキ(@sena0801masato)です。

今回は、Windows10で突然pythonコマンドを認識しなくなったので、その時の私が行った解決方法をお伝えしようと思います。
原因はいまいち分かりませんでした。Windowsのアップデートが影響しているような、私の環境の問題のような...
そのため、備忘録としてざっくりと書きます。もし同じようなことで、つまづいている方のお力になれれば幸いです。

この記事の対象者

  • 数か月前からpythonを使っている
  • Windows10を最近アップデートした
  • pythonコマンドを突然認識してくれなくなった

私の環境

  • Windows10 Pro バージョン 1903 OSビルド 18362.295
  • Anaconda

自分のWindows10のバージョンを確認する方法は、[スタート]ボタン > [設定] > [システム] > [バージョン情報] です
使用中の Windows オペレーティング システムのバージョンを確認する

問題点

pythonを対話モードにしてみる。

コマンドプロンプト
Microsoft Windows [Version 10.0.18362.295]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Owner>python --version
(反応しないで処理が終わったことになる)

C:\Users\Owner>python
(Microsoft Storeのpythonをインストールしませんか?って画面が開かれる)
ターミナル(gitのbash)
$ python --version
bash: /c/Users/Owner/AppData/Local/Microsoft/WindowsApps/python: Permission denied

$ python
bash: /c/Users/Owner/AppData/Local/Microsoft/WindowsApps/python: Permission denied

今までは何も問題なく対話モードになっていたのに何かおかしい。

解決方法

Pathの順番を入れ替えてターミナルを起動し直したらうまく動作した。
Pathの確認は[コントロールパネル] > [システムとセキュリティ] > [システム] > [システムの詳細設定] > [環境変数]です。
入れ替えてというのは、[環境変数] > [Path]を選択 > [編集] > [上へ]や[下へ]をしました。

入れ替え前
1. C:\Users\Owner\AppData\Local\Microsoft\WindowsApps
2. C:\Users\Owner\Anaconda3
3. C:\Users\Owner\Anaconda3\Scripts

入れ替え後
1. C:\Users\Owner\Anaconda3
2. C:\Users\Owner\Anaconda3\Scripts
3. C:\Users\Owner\AppData\Local\Microsoft\WindowsApps

ふたたび対話モードになるか確認してみる。

コマンドプロンプト
C:\Users\Owner>python --version
Python 3.6.1 :: Anaconda 4.4.0 (64-bit)

C:\Users\Owner>python
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
ターミナル(gitのbash)
$ python --version
Python 3.6.1 :: Anaconda 4.4.0 (64-bit)

$ python
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

原因

Pathは上の方にあるものが優先されます。そのため、Anacondaのpython.exeよりも先に、WindowsAppsでpython.exeが見つかったから、WindowsAppsのpython.exeを実行してしまったようです。
このWindowsAppsのpython.exeは私の環境では2019/09/06に作成されたらしいです。
"らしい"というのは、作成されるような操作をした心当たりがないためです。
こんなに最近にファイルが作成されていて、心当たりがあるのはWindows10のアップデートぐらいでした。
でも、Windows10のバージョン情報より、インストール日は2019/08/29と書いてあるから、ますます疑問です...

Cドライブのすぐ下に2019/08/29に作成されたWindows.oldディレクトリや2019/09/01に作成されたWindowsディレクトリが、Windowsのアップデートで作成された気がするから、ここら辺が影響しているのかな...

また、WindowsAppsディレクトリに入っているpython.exeを削除するという方法もありますが、削除は怖いので今回はPathの順番を入れ替えるだけにしました。
Pathを勝手に入れ替えたのも怖いのですが、WindowsAppsディレクトリにはMicrosoft Storeを開くものだけで、大したものが入っていなさそうなので大丈夫だと思います。

まとめ

コマンドを認識してくれなくなった!って思ったらとりあえずPathを確認すればなんとかなると思います。
ただWindowsAppsのpython.exeは何がきっかけで作成されたのか疑問です。

ではでは!

参考文献

閲覧日2019/09/09 使用中の Windows オペレーティング システムのバージョンを確認する
https://support.microsoft.com/ja-jp/help/13443/windows-which-version-am-i-running
閲覧日2019/09/09 Python/python3 executes in Command Prompt, but does not run correctly
https://stackoverflow.com/questions/57485491/python-python3-executes-in-command-prompt-but-does-not-run-correctly

ozaki_physics
好奇心旺盛(*´∀`)♪ 大学では化学とDNAを専攻 趣味は物理! Python3を中心に勉強中
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした