LoginSignup
75
75

More than 3 years have passed since last update.

あなたの Windows 10 には何種類の Python が入っていますか?私は5種類でしたが。

Last updated at Posted at 2020-03-07

2020-03-10
Update1: あなたの macOS には何種類のPythonが入っていますか?私は401種類でしたが。
Update2: わりかん がん保険 やってます

2020-03-15
Update3: タイトルが Window 10 だったのを Windows 10 に修正。無意識typoでした。

タイトルは煽りです。WSL Ubuntu 18.04 上にはpyenv経由で3種類+OS由来の2種類で合計10種類でした。

なぜこの記事を書こうとしたのか

背景を説明します。ひさびさにWindows 10を開いたのでセキュリティアップデートも兼ねて Visual Studio Comminity 2019 update や Microsft Store からのアプリのアップデートをよく確認せずに実行したところ、Git bash から python が起動しなくなってしまったのでした。

そもそも Microsoft Store版pythonのinstallは意図すらしていなかったのだが、Git Bash からのpython実行がエラーを起こしていたため、その原因を探る過程で(過去の残骸も含めた)python達のインストール状況を調査した。

インストーラーの分類

version installer type installed path
python 3.7.5 Visual studio community 2019 installer "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\"
python 3.8.2 Microsoft Store (alias) "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\"
python 3.6.5 Anaconda (Just me) "%USERPROFILE%\Anaconda3"
(All users) "C:\ProgramData\Anaconda3" [個人的に "C:\Anaconda\" へ変更していた]
python 3.7.4 R's reticulate installation of miniconda "%LOCALAPPDATA%\r-miniconda\"
python 3.5.2 Official exec installer "%LOCALAPPDATA%\Programs\Python\Python35\"

Note:
- %LOCALAPPDATA% is C:\Users\your_login_name\AppData\Local
- %USERPROFILE% is C:\Users\your_login_name

環境変数を編集して優先して使うpythonを指定

[Window key] を押し path と入力して システム環境変数を編集 を選択。環境変数 -> 変数のPATH をダブルクリック。優先して使いたいpythonのpathを 上へ で調整する。

なお、Windows 10 には究極の恐ろしいバグが含んでおり、なんと環境変数をGUIで入力すると(ユーザー環境変数、システム環境変数それぞれ)2048文字以上は認識しないということだ。 @ITの記事がとても参考になる

結局どの Python を残したのか。

ぶっちゃけ WSL Ubuntu 上の作業が多いので、Windows上のpythonは全削除。とはいかずに RSutido から reticulate でたまに使うので、それだけ残す方針とした。いまのところは不便はない。

付随で見つけたゴミフォルダ達

問答無用で削除

  • "%LOCALAPPDATA%Python Tools"
  • "%LOCALAPPDATA%\Roaming\Python\Python35"

Git Bash からの python の起動が Permission denied で失敗する理由と対応方法。

python -V
bash: /c/Users/your_account/AppData/Local/Microsoft/WindowsApps/python: Permission denied

これは、 Git Bash 上から python -V などを実行したとき、MiscroSoft Store 版の python がインストールされて、かつ path として USERPROFILE%\AppData\Local\Microsoft\WindowsApps に最初に python が見つかる場合に起こるエラーである。

対処法

MINGW 由来のバグのため Git Bash (via vscode terminal 含む) からの実行の、根本対処はない。( Python official bug tracker にて報告有り、stackoverflowにて解説あり)

  1. cmd, powershell からは実行できるため、Git Bash を使わない
  2. Microsoft Store 版以外のpythonをインストールし、かつ USERPROFILE%\AppData\Local\Microsoft\WindowsApps のpathの優先度を下げる。

まとめ

Windows 10 での Python 汚染に気を付けよう

参考

75
75
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
75
75