py コマンドの規定 Python バージョンの設定方法

2020-12-09

#Python3 #Windows10 コマンドライン 仮想環境

py.exe コマンドは、デフォルトで実行する Python のバージョンを設定できます。
設定方法は次の通りです。

設定なしの動作

py.exe をバージョン指定オプション無しで実行すると、インストールされているうちで最も新しいバージョンの Python でスクリプトが実行されます。
このデフォルトで実行するバージョンは、下記の何れかの方法で変更可能です。

環境変数

環境変数 PY_PYTHON でデフォルトを設定できます。

  1. Windows のスタートなどから「⚙設定」を開く。
  2. 設定で「環境変数を編集」を検索して開く。
  3. 環境変数ウィンドウで「新規…」ボタンを押す。
  4. 変数名に PY_PYTHON、変数値に任意のバージョン (3.8など) を指定。
  5. 起動中のシェル (コマンドプロンプト等) があれば開き直す。

実行時オプション -3-2 それぞれのデフォルトとして PY_PYTHON3PY_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 等)。

バージョン指定の優先順位

バージョン指定の優先順位は次の通りです。

  1. コマンドラインオプションによる直接指定
  2. スクリプト内の shebang 行
  3. 環境変数 PY_PYTHON3PY_PYTHON2
  4. 環境変数 PY_PYTHON
  5. %LOCALAPPDATA%\py.ini
  6. py.exe と同一フォルダの py.ini

特に、スクリプト内の shebang 行は、環境変数や py.ini よりも優先 (=設定は無効化) される事に注意しましょう。

参考情報

QooQ