Python 2.6
Windows 7 にとをインストールし、Python 3.1
環境変数を設定しました: path = d:\python2.6
.
で実行するpython
とcmd
、必要な Python バージョン 2.6 が表示されます。
しかし、batファイルにスクリプトを書いて実行したところ、表示されたpythonのバージョンは3.1でした。
import sys
print (sys.version)
何が起きてる?
Python 2.6
Windows 7 にとをインストールし、Python 3.1
環境変数を設定しました: path = d:\python2.6
.
で実行するpython
とcmd
、必要な Python バージョン 2.6 が表示されます。
しかし、batファイルにスクリプトを書いて実行したところ、表示されたpythonのバージョンは3.1でした。
import sys
print (sys.version)
何が起きてる?
これは、両方のバージョンがインストールされている場合です。
This PC →右クリック→ Properties → Advanced System Settingsをクリックします。
システムのプロパティが表示されます。ここから[ Advanced ] タブに移動し、[ Environment Variables]をクリックします。
ユーザー変数の上半分とシステム変数の下半分が表示されます。
システム変数を確認し、パスをダブルクリックします(パスを編集するため)。
Python のパス (実行したい Python 2.x または 3.x) を確認し、パス リストの一番上に移動します。
コマンド プロンプトを再起動します。Python のバージョンを確認すると、必要なバージョンが正しく表示されるはずです。
Python インストーラーは、Python Launcher for Windows をインストールします。このプログラム ( py.exe
) は Python ファイル拡張子に関連付けられており、実行する Python バージョンを指定する「shebang」コメントを探します。これにより、多くのバージョンの Python を共存させることができ、必要に応じて Python スクリプトで使用するバージョンを明示的に指定できます。指定されていない場合、デフォルトでは、現在のアーキテクチャ (x86 または x64) の最新の Python バージョンが使用されます。py.ini
このデフォルトは、ファイルまたはPY_PYTHON
環境変数によってカスタマイズできます。詳細については、ドキュメントを参照してください。
Python の新しいバージョンでは、ランチャーが更新されます。最新バージョンにはpy -0
、インストールされている Python を一覧表示し、現在のデフォルトを示すオプションがあります。
コンソールからランチャーが正しく登録されているかどうかを確認する方法は次のとおりです。
C:\>assoc .py
.py=Python.File
C:\>ftype Python.File
Python.File="C:\Windows\py.exe" "%1" %*
上記では、.py
ファイルはタイプに関連付けられていますPython.File
。のコマンド ラインPython.File
は Python ランチャーです。これは常に PATH にあるため、Windows ディレクトリにインストールされます。
script.py
関連付けを機能させるには、「python script.py」ではなくを使用してコマンド ラインからスクリプトをpython
実行しますpy
。実際には、Python ディレクトリを PATH から削除するのが最善の方法であるため、「python」は何も実行せず、py
.
py.exe
Python のバージョンを強制するスイッチを指定して実行することもできます。
py -3 script.py # select latest Python 3.X version to be used.
py -3.6 script.py # select version 3.6 specifically.
py -3.9-32 script.py # select version 3.9 32-bit specifically.
py -0 # list installed Python versions (latest PyLauncher).
さらに、環境変数に追加.py;.pyw;.pyc;.pyo
すると、コマンドラインは拡張子なしで実行できます。PATHEXT
script
あなたが Windows ユーザーで、Python 3.3 以降のバージョンを使用している場合は、Windows 用のPython ランチャーをマシンにインストールする必要があります。これは、すべての Python スクリプトを起動するための推奨される方法です (スクリプトが必要とする Python のバージョンに関係なく)。 )。
ユーザーとして
コマンドラインからスクリプトを実行するときは、py
代わりに常に入力してください。python
「...で開く」エクスプローラーの既定のプログラムとの関連付けをセットアップしますC:\Windows\py.exe
Windows 用の Python ランチャーを使用するようにコマンド ライン ファイル拡張子の関連付けを設定します (これにより、入力がpy
オプションになります)。
ftype Python.File="C:\windows\py.exe" "%L" %*
ftype Python.NoConFile="C:\Windows\pyw.exe" "%L" %*
PY_PYTHON
環境変数を設定して、好みのデフォルト バージョンを設定します (例:PY_PYTHON=3.7)
を入力すると、デフォルトの python のバージョンを確認できます。デフォルトの python 3 および python 2 バージョンを設定または指定py
することもできます (複数ある場合)。PY_PYTHON3
PY_PYTHON2
特定のバージョンの python を実行する必要がある場合は、 py -M.m
(M
はメジャー バージョン、m
はマイナー バージョン) を使用できます。たとえば、py -3
インストールされている任意のバージョンの Python 3 を実行します。
を使用して、インストールされている python のバージョンを一覧表示しpy -0
ます。
脚本家として
スクリプトの先頭に、必要な Python のメジャー バージョン番号を示すシバン行を含めます。スクリプトが他のマイナー バージョンと互換性がない場合は、マイナー バージョン番号も含めます。例えば:
#!/usr/bin/env python3
シバン行を使用して仮想環境を示すこともできます (以下の PEP 486 を参照)。
こちらもご覧ください
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
.py
ファイルを開くデフォルトのプログラムを設定するpython.exe
Python 3.3 がリリースされたので、ここで説明されている py.exe ユーティリティを使用するのが最も簡単です: http://www.python.org/dev/peps/pep-0397/
UNIX スタイルのディレクティブを使用して、スクリプト ファイルで Python のバージョンを指定できます。また、実行する Python のバージョンを制御するためのコマンド ライン オプションと環境変数オプションもあります。
このユーティリティを入手する最も簡単な方法は、Python 3.3 以降をインストールすることです。
Windows レジストリのパスを変更してみてください (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)。
警告: レジストリを壊さないでください :)