py.exe コマンドは、デフォルトで実行する Python のバージョンを設定できます。
設定方法は次の通りです。
設定なしの動作
py.exe をバージョン指定オプション無しで実行すると、インストールされているうちで最も新しいバージョンの Python でスクリプトが実行されます。
このデフォルトで実行するバージョンは、下記の何れかの方法で変更可能です。
環境変数
環境変数 PY_PYTHON
でデフォルトを設定できます。
- Windows のスタートなどから「⚙設定」を開く。
- 設定で「環境変数を編集」を検索して開く。
- 環境変数ウィンドウで「新規…」ボタンを押す。
- 変数名に
PY_PYTHON
、変数値に任意のバージョン (3.8
など) を指定。 - 起動中のシェル (コマンドプロンプト等) があれば開き直す。
実行時オプション -3
と -2
それぞれのデフォルトとして PY_PYTHON3
と PY_PYTHON2
も同様に指定できます。
環境変数を変更したときは、コマンドプロンプトや PowerShell を再起動して反映させるのを忘れないようにしましょう。
py.ini ファイル
次の何れかの py.ini
ファイルにバージョンを記述することで設定できます。py.ini は無ければ新規作成しましょう。
%LOCALAPPDATA%\py.ini
- py.exe と同一フォルダの py.ini
次の形式で py.ini に任意のバージョンを記述します。
スクリプト内の shebang 行
Python スクリプトの1行目に次のようなコメント行を書くことでバージョンを指定できます。
この方法は他の設定よりも優先順位が高く、インストールされていないバージョンを指定するとスクリプトを実行できなくなる為、注意が必要です。
その場合でもコマンドラインオプションでバージョンを指定すれば shebang 行を無視して実行可能です (py -3 foo.py
等)。
バージョン指定の優先順位
バージョン指定の優先順位は次の通りです。
- コマンドラインオプションによる直接指定
- スクリプト内の shebang 行
- 環境変数
PY_PYTHON3
とPY_PYTHON2
- 環境変数
PY_PYTHON
%LOCALAPPDATA%\py.ini
- py.exe と同一フォルダの py.ini
特に、スクリプト内の shebang 行は、環境変数や py.ini
よりも優先 (=設定は無効化) される事に注意しましょう。
たすかる
返信削除