6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】pyコマンドのデフォルトバージョンを変更したい

Posted at

インストーラを使って複数の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と同じところに置きましょう。

py.ini
[defaults]
python=3.10

これで、単にpyって打ったときにPython3.10が起動するようになります。
めでたしめでたし。

venv

venvを使えばプロジェクト単位とかでバージョンを管理可能です。
なんだけどわざわざactivateとかで起動しないといけなくて面倒なんだよね。
カレントディレクトリにあるpy.iniを自動で見るとかしてくれんかね。

感想

py useくれ。

6
3
0

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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?