Windows に Python 2.7.1 と 2.6.5 の両方のバージョンをインストールしました。環境変数に Python 2.6.5 のパスのみを追加しました。x.py
ここで、 Python 2.6.5 を使用して Python スクリプトを実行したいと考えています。を使用して行う方法は知っていますが、IDLEで開き、オプションcmd
を使用してその中で実行する方が便利です。Run Module
これは、スクリプトを右クリックしてEdit with IDLE
オプションに移動することで行われると思われますが、これにより Python 2.7.1 を使用してスクリプトが開き、実行されます。Python 2.6.5 で開いて実行する方法はありますか?
2 に答える
レジストリの標準コマンドEdit with IDLE
は次のとおりです。
"C:\Program Files\Python33\pythonw.exe" "C:\Program Files\Python33\Lib\idlelib\idle.pyw" -e "%1"
ご覧のとおり、パスはハードコードされているため、少なくともデフォルトでは、そのような別の Python インタープリターを使用することはできません。
ただし、PEP 397では Python 用の新しい Python ランチャーが導入され、シェバン行に基づいて異なるバージョンの Python を起動できるようになりました。したがって、で始まるファイル#!/usr/bin/env python2
は現在の Python 2 インタープリターを起動し、一方で#!/usr/bin/env python3
Python 3 を使用します。
その情報を使用して、特定の Python バージョンの IDLE を動的に起動できます。たとえば、これはランチャーのデフォルトの Python バージョンを使用してファイルを編集します。
C:\Windows\pyw.exe -m idlelib.idle -e "%1"
これにより、Python 3 の使用が強制されます。
C:\Windows\pyw.exe -3 -m idlelib.idle -e "%1"
これにより、Python 2 の使用が強制されます。
C:\Windows\pyw.exe -2 -m idlelib.idle -e "%1"
つまり、シバン行を手動で解析することによって、ファイルがどのPython バージョンで実行されるかを基本的にチェックするスクリプトを作成する必要があります(残念ながら、ランチャーは、実際にスクリプトを起動しない限り、この情報を提供しません。そのような機能をコアに入れるためにプルリクエストを開始するかもしれません)。次に、上記のコマンドを使用して Python 2 または Python 3 IDLE を実行し、完了します。
コマンドを変更しEdit with IDLE
てスクリプトを実行するだけで機能します。
非常に簡単な代替手段は、Python 2 IDLE を起動する別のレジストリ キーを追加することです。だからあなたはEdit with IDLE
andEdit with IDLE (Py2)
または何かを持っているでしょう。
これを行うには、次を.reg
ファイル内に配置して実行します。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Python.File\shell\Edit with IDLE (Py2)]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Python.File\shell\Edit with IDLE (Py2)\command]
@="C:\\Windows\\pyw.exe -2 -m idlelib.idle -e \"%1\""
編集:私はこれを主に Python 2 と Python 3 について書いたことに気付きました。ランチャーには Python 2.7 が同梱されていると思いますので、これはまったく同じように機能します。-2.6
ランチャーのバージョン固有のものを必要に応じて調整するだけ-2.7
です。
IDLE 2.6 をデフォルト (2.7 ではなく) にするためにいくつかのレジストリ ハックを使用してこれを行うことができますが、2.7 で何かをテストしたい場合はプロセスを逆にする必要があるため、それは実際には望んでいないと思います。他の誰かが異なる IDLE インストールをシェルに統合する他の方法を知っていない限り、ここにいくつかのより良いオプションがあります: