インストーラを使って複数のPythonをインストールした場合、pyコマンドで実行されるPythonのバージョンは最新バージョンになります。
nvmだったらnvm use v1.0、nodebrewならnodebrew use v1.0のように、大抵のランチャーはコマンドでデフォルトバージョンを切り替えられますが、pyコマンドには何故かありません。
どうして。
pythonコマンド
pythonコマンドは忘れましょう。
こいつは環境変数を通さないといけないので色々面倒です。
pyコマンド
C:\Windows\py.exeにあります。
ここはnotepadとかregeditとかが置いてあるところなので、コマンドは必ず実行できます。
なかったら知らん。
現在のバージョン
py -0pで、現在インストールされている全Pythonバージョンを確認できます。
何そのオプション名。
C:\Windows\>py -0p
-V:3.13 * C:\Users\hoge\AppData\Local\Programs\Python\Python313\python.exe
-V:3.12 C:\Users\hoge\AppData\Local\Programs\Python\Python312\python.exe
-V:3.11 C:\Users\hoge\AppData\Local\Programs\Python\Python311\python.exe
-V:3.10 C:\Users\hoge\AppData\Local\Programs\Python\Python310\python.exe
のようになっていると思います。
ここで*がついているバージョンが、単にpyコマンドを打ったときに起動するバージョンです。
そしてこの*、必ず最新バージョンにくっついていて、コマンドで変更することはできません。
なんで。
任意のバージョンで実行
py -3.10のようにバージョンを指定すると、そのバージョンで実行することができます。
デフォルトバージョンを変更
ファイルpy.iniを作って、py.exeと同じところに置きましょう。
[defaults]
python=3.10
これで、単にpyって打ったときにPython3.10が起動するようになります。
めでたしめでたし。
venv
venvを使えばプロジェクト単位とかでバージョンを管理可能です。
なんだけどわざわざactivateとかで起動しないといけなくて面倒なんだよね。
カレントディレクトリにあるpy.iniを自動で見るとかしてくれんかね。
感想
py useくれ。