#やりたいこと
- Windows10環境に好きなバージョンのPythonを入れる
- Pythonのバージョンを切り替えられる様にする
#結果
- pyenvを使える様にすることでバージョンを切り替え可能
- Micorsoft Storeのpythonは切り替えなどに向いてなさそう
- mac+brewに比べると手間がかかった(mac+brewのすばらしさを再認識)
#以下、やったこと
##Micorsoft StoreのPython(今回はパス)
便利になった。
Windows10の最近のUpdateにおいて、Pythonがインストールされてない状態で、
cmdより、
C:\Users\username>python
と入力すると、Micorsoft Storeから最新版のPythonをインストールできる!?
とりあえず入ってればOKであればこれで良いと思います。
今回は**「バージョンを切り替えたりすることを想定したいのでパス**」します。
追記:
どうやらpathの通ってるところにMicrosoft Storeに接続するpython.exeがいるらしい1
##Pythonの切り替え管理はできる?
最近の言語はなんだかんだ、なんとかenv(nodejs→nodenv)みたいので、バージョン切り替えするものがあったりします。
pythonもあると思うので、公式サイトやぐぐったりしてみると、pyenvはちゃんとありそうです。
そしてwindowsの場合だと、pyenv-winというのが、公式的にも良いらしい。
##pyenv-winの導入
今回はこれを入れることにする。
大まかな手順は以下。
- pyenv-winのファイル一式を取得
- ローカルフォルダに格納する
- pathを通す
###pyenv-winのファイル一式を取得
pyenv-winのgitからファイル一式を取得します(ブランチはmasterです)。
git cloneでもよいですし、zipダウンロードでもよいです。
自分は楽したいので、URLでダウンロードしちゃいました(コマンドラインだけ派のみなさまごめんなさい)
###ローカルフォルダに格納する
インストール先の準備します。
%userprofile%\.pyenv
にします。
(どのサイトみても、ここにしてるからです☆)
zipを解凍すると中身は
- .github
- pyenv-win
- tests
などですが、これら全部(ファイルもフォルダも)→ %userprofile%\.pyenv の中に入れます。
C:\Users\username\.pyenv\pyenv-win
みたいな感じになるはずです。
###pathを通す
pathを通します。
%USERPROFILE%\.pyenv\pyenv-win\bin\pyenv
をpyenvと入力して動く様にしたいのと、
%USERPROFILE%\.pyenv\pyenv-win\shims\python
%USERPROFILE%\.pyenv\pyenv-win\shims\pip
pyenvによって有効になっているpythonやpipが格納される予定のところを動く様にしたいので、
環境変数としてpathに
%USERPROFILE%\.pyenv\pyenv-win\bin
%USERPROFILE%\.pyenv\pyenv-win\shims
を登録します。
(ほかを優先する必要がないと思ったので優先度を一番上にしました。Windows10は順番を入れ替えできるのですごく楽ですね)
登録後にcmd開いて、
> where pyenv
C:\Users\username\.pyenv\pyenv-win\bin\pyenv
C:\Users\username\.pyenv\pyenv-win\bin\pyenv.bat
の結果が帰ってくれば大丈夫です。
"C:\Users\username"の部分はその時のユーザホームディレクトリに変換されてると思います。
INFO: Could not find files for the given pattern(s).
の場合はpathが通ってませんので、pathとpyenv-winの場所が正しいか確認する必要があります。
それ以外のpathを示した場合はpathの順位がおかしいと思うので順位確認ですね。
コマンドを認識していれば、以下の様に動きます。
> pyenv
pyenv 2.64.9
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
duplicate Creates a duplicate python environment
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using python-build
uninstall Uninstall a specific Python version
update Update the cached version DB
rehash Rehash pyenv shims (run this after installing executables)
vname Show the current Python version
version Show the current Python version and its origin
version-name Show the current Python version
versions List all Python versions available to pyenv
exec Runs an executable by first preparing PATH so that the selected Python
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv-win/pyenv-win#readme
###pythonをバージョン指定でインストールしてみる
インストールできるバージョン一覧をみる。
> pyenv install --list
でインストールできるバージョン一覧がでます。
今回は試しに 3.9.6 でいくでござる。
(これを書いているタイミングで3.10.xはまだ安定版ではないゆえ)
> pyenv install 3.9.6
これでインストール完了すると思います。
> where python
C:\Users\username\.pyenv\pyenv-win\shims\python
C:\Users\username\.pyenv\pyenv-win\shims\python.bat
C:\Users\username\AppData\Local\Microsoft\WindowsApps\python.exe
みたいになると思います。
(最後のやつはMicrosoft Storeに飛ばしてくれるやつだと思います。たぶん)
> where pip
C:\Users\username\.pyenv\pyenv-win\shims\pip
C:\Users\username\.pyenv\pyenv-win\shims\pip.bat
こちらも、大丈夫そうです。
###2x系を追加インストール
切り替えの試しに2.x系を入れてみます
> pyenv install 2.7.18
これで入ります。
> pyenv versions
2.7.18
3.9.6
2系と3系が入りました。
###2.7.18へ切り替え
切り替え実施
> pyenv global 2.7.18
バージョンを確認してみる
> python --version
Python 2.7.18
###3.9.6へ切り替え
切り替え実施
> pyenv global 3.9.6
バージョンを確認してみる
> python --version
Python 3.9.6
いい感じで出来ました。
-
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\python.exe というのが呼ばれてるらしい。python入れたら、これよりも上位にpathを切る必要があります。 ↩