WindowsにPython 2.xとPython 3.xの両方をインストールする方法


230

ほとんどのプログラミングはWindows 7のPython 3.xで行いますが、今はPython Imaging Library(PIL)、ImageMagick、およびwxPythonを使用する必要があります。これらにはすべてPython 2.xが必要です。

Windows 2.xにPython 2.xとPython 3.xの両方をインストールできますか?スクリプトを実行するとき、どのバージョンのPythonを実行するかを「選択」するにはどうすればよいですか?前述のプログラムは、一度にインストールされた複数のバージョンのPythonを処理できますか?これを行う方法を何時間も検索しましたが、役に立ちませんでした。

ありがとう。



2
はい、@ NickTが言うように、それは最も簡単です。残念ながら、以下の答えはどれも単純で簡単なアプローチを提供していません。(バージョン3.3を言及するものが最も接近。)良い答えのために、重複した質問の下で認められたものを参照してください。stackoverflow.com/a/17245543/1593924 またはAもしなくても、新しい「PY」ランチャーを使用して、一言で言えば-3パラメータ。また、パラメーターを必要としないように、スクリプトにシバン(#!)を追加することを検討してください。
Jon Coombs

1
また、私がここに投稿した詳細が役立つと感じた人もいます:stackoverflow.com/a/13533958/1593924
Jon Coombs '23

回答:


150

これを行う正式な方法は次のとおりです。

Windows 7に2つ(またはインストーラーを使用して)のバージョンのPythonをインストールするだけです(私は3.3および2.7で作業します)。

以下の手順に従って、必要に応じてパラメーターを変更します。

次の環境変数を作成します(デフォルトではダブルクリック)。

Name:  PY_PYTHON
Value: 3

特定のインタープリターでスクリプトを起動するには、次のシバン(スクリプトの先頭)を追加します。

#! python2

特定のインタープリターを使用してスクリプトを実行するには、次のプロンプトコマンドを使用します。

> py -2 MyScript.py

特定のインタープリターを起動するには:

> py -2

デフォルトのインタープリター(PY_PYTHON変数で定義)を起動するには:

> py

資源

ドキュメント:WindowsでのPythonの使用

PEP 397 -Windows用のPythonランチャー


8
さらに、両方のバージョンでeasy_installまたはpipを使用するには、パスをincludeに変更しますc:\python35;c:\python35\scripts;c:\python27\scripts;。これは、使用可能にpip2/をpip3、およびeasy_install-2.7/ easy_install-3.5の代わりに、pipeasy_install
rdtsc

1
独自のPythonを出荷せず、システムバージョンの使用を要求せず、ランチャーを尊重しないさまざまなプログラムでは動作しません。
ジョナサンボールドウィン

1
いいえ、パスにPythonを追加しないでください。を使用しpy -m pip install ...ます。py上記のように、pipを実行するPythonを選択するために、後にスイッチを追加します。
Mark Tolonen

75

2.7.6と3.3.4の両方をダウンロードしました。Python 3.3.4には、環境変数にパスを追加するオプションがあります。したがって、基本的には手動でPython 2.7.6を追加しました。

方法...

  1. 開始>環境の検索タイプで、「アカウントの環境変数を編集」を選択します1

  2. [パス]までスクロールし、パスを選択して、[編集]をクリックします。

  3. C:\ Python27;を追加します。そこにはPythonの両方のバージョンへのパスが必要ですが、そうでない場合は簡単に編集して、C。\ Python27; C:\ Python33;を実行できます。

  4. C:\のPython27フォルダーに移動し、python.exeのコピーの名前をpython2.exeに変更します。

  5. C:\のPython34フォルダーに移動し、python.exeのコピーの名前をpython3.exeに変更します。

  6. テスト:コマンドプロンプトを開き、「python2 .... BOOM!」と入力します。Python 2.7.6。出て行け。

  7. テスト:コマンドプロンプトを開き、「python3 .... BOOM!」と入力します。Python 3.4.3。出て行け。

注:(手順4と5でpipコマンドを壊さないように、名前を変更したファイルと同じディレクトリにpython.exeのコピーを保存してください)


43
これは、pip2とpip3の両方を壊します!pythonを置き換えず、コピーして、2番目のファイルの名前をpython2 / python3に変更します。
brunofitas 2015年

1
注意点として、名前を元に戻すまで、Pythonをアンインストールできませんでした。私のアドバイスは、コピーを作成してそれらの名前を変更することですが、元のpython.exeファイルはそのままにしておきます。
Logic1

2
回答でbrunofitasフィードバックを処理できますか?
030

ええ、私はPython3インストールのpython.exeの名前をpython3.exeに変更しました。これは* nix環境のpythonで自動的に発生すると思います。もちろん、.exeファイルはありませんが、python2およびpython3プログラムがあります。:)
user3870315

pythonのいずれかのバージョンに依存するライブラリ/プラグインがある場合は、PATH環境変数でそのバージョンが最初に来るようにしてください
aphoe

51

Windowsに複数のバージョンがあります。デフォルトにしていないバージョンのexe名を変更するだけです。

python.exe-> python26.exe

pythonw.exe-> pythonw26.exe

パッケージインストーラーについては、ほとんどのexeインストーラーで、pythonインストールを選択してパッケージを追加することもできます。手動インストールの場合、-prefixオプションをチェックして、パッケージをインストールする場所を定義します。

http://docs.python.org/install/index.html#alternate-installation-windows-the-prefix-scheme


これはうまくいきました。この変更を行う前に、Python 2.7でプログラムを実行しようとすると、Python 3.1でも実行されました(おそらく、Windows 7が同じ名前の2つの異なるプログラムを処理できないためです)。示されているようにexeの名前を変更した後、すべてがうまくいきました。
dln385

4
@ dln385:それがあなたの質問に答えた場合、チェックマークをクリックしてそれを受け入れる必要があります。
dappawit

1
これも私にとってはうまくいきました。Python 2.7とPython 3.2の間で競合がありました。最初にPython 3.2をインストールした(そして環境変数として適切に設定した)ため、プロンプトでPython 2.7にアクセスできませんでした(代わりに、Python 3.2を取得しました)。私はデフォルトのPython 2.7を使用したかったので、python.exeをpython3.2.exeに変更し、Python 2.7のpython.exeは変更しませんでした。これでうまくいきました。
Robert Smith

しばらくWindowsに新しいpython3をインストールしていませんが、バージョンにはpip as pip3とが含まれていpip3.4ます。(それもとして含まれていpipますが、削除するとpython2との競合が解決されると思います)。実際C:\Python34\Scripts、私Path
はが

30

Anaconda Pythonを使用すると、さまざまな環境を簡単にインストールできます。

Anaconda Python 2.7がインストールされていて、Python 3.4環境が必要だとします。

conda create -n py34 python=3.4 anaconda

次に、環境をアクティブ化します。

activate py34

そして無効にする:

deactivate py34

(Linuxでは、を使用する必要がありますsource activate py34。)

リンク:

Anaconda Pythonをダウンロード

環境に関する説明


IMO condaは、さまざまなPythonインストールをいじる最良の方法です。アナコンダに移動する前に、私は多くのことを台無しにしました。
jrinker 2017

11

同じシステムに任意のバージョンのPythonをインストールして実行するには、以下のガイドに従ってください。


たとえば、Python 2.xとPython 3.xを同じWindowsシステムにインストールするとします。

  1. 両方のバイナリリリースを好きな場所にインストールします。

    • プロンプトが表示されたら、ファイル拡張子を登録しないでください。
    • それらを自動的にPATH環境変数に追加しないでください
  2. コマンドをpython実行すると、PATHで最初に検出された実行可能ファイルが起動用に選択されます。つまり、Pythonディレクトリを手動で追加します。を入力すると、最初に追加したものが選択されますpython。連続したpythonプログラム(ディレクトリがPATHに配置される順序が昇順)は、次のように選択されます。

    • 2番目の場合はpy -2 python
    • 3番目の場合はpy -3 pythonなど。
  3. 「Python」の順序に関係なく、次のことができます。

    • 次のコマンドを使用してPython 2.xスクリプトを実行します:py -2(Python 3.x機能)(つまり、PATHで見つかった最初のPython 2.xインストールプログラムが選択されます)
    • 次のコマンドを使用してPython 3.xスクリプトを実行します:またはpy -3(つまり、PATHで見つかった最初のPython 3.xインストールプログラムが選択されます)

私の例では、最初にPython 2.7.14をインストールし、Python 3.5.3をインストールしています。これは私のPATH変数がどのように始まるかです:

PATH = C:\ Program Files \ Microsoft MPI \ Bin \; C:\ Python27; C:\ Program Files \ Python_3.6 \ Scripts \; C:\ Program Files \ Python_3.6 \; C:\ ProgramData \ Oracle \ Java \ javapath; C:\ Program Files(x86)\ Common Files \ Intel \ Shared

...

Python 2.7が最初で、Python 3.5が2番目です。

  • したがって、pythonコマンドを実行するとpython 2.7が起動します(Python 3.5の場合、同じコマンドでPython 3.5が起動します)。
  • 実行py -2するとPython 2.7が起動します(2番目のPythonがPython 3.5であり、と互換性がないためpy -2)。実行py -3するとPython 3.5が起動します(Python 3.xであるため)
  • パスの後半に別のpythonがある場合は、次のように起動しますpy -4。Pythonバージョン4がリリースされると、これは変更される可能性があります。

私のシステム出力で今py -4またはpy -5等:Requested Python version (4) not installedまたはRequested Python version (5) not installed

うまくいけば、これは十分に明確です。


Pythonのdistsの1つでpipインストールをどのように指定できますか?
ビクター・マルティネス

最初に見つかったpythonについては、単にと入力しpipます。インストールされている他のpythonの場合、パスを手動で指定する必要があります。C:\Python27\Scripts\pip.py [parameters]。(もちろん、ショートカットとして、必要な任意のexeを環境変数に入れることができます。)
Nikos

@ Nik-Lz「py -2」コマンドとはどのようなものですか?私は7.私の窓の上にこれらを持っていないように見えます
ヤーノシュ

2
これは、複数のバージョンがある場合に、Windowsでpythonを使用する方法とまったく同じです。
getName


8

できることは次のとおりです。

cmderをインストールします。cmdターミナルと同じようにCmderを開いて使用します。コマンドエイリアスを使用してコマンドエイリアスを作成します。

私は次のことをしました:

alias python2 = c:\python27\python.exe
alias python3 = c:\python34\python.exe

以上です!;-)


6
set-alias python2 c:\python27\python.exe
預言者Daniel

Powershellを使用する場合の例として、set-aliasを使用します。その場合、Cmderをインストールする必要はありません。
預言者ダニエル

@ProphetDanielこれは別の回答として投稿する必要があります。元の質問に完全に答えます。
Dr_Zaszuś

7

私は実際に興味深い解決策を考えただけです。Windowsではプログラムのエイリアスを簡単に作成できませんが、代わりに、現在のプログラムを呼び出す名前を変更したバッチファイルを作成できます。

pipを含む多くのものを破壊する実行可能ファイルの名前を変更する代わりに、python2.exeと同じディレクトリにpython2.batファイルを作成します。次に、次の行を追加します。

%~dp0python %*

この古い構文はどういう意味ですか?まあ、それはバッチスクリプトです(bashのWindowsバージョン)。%〜dp0は現在のディレクトリを取得し、%*はスクリプトに渡されたすべての引数をpythonに渡すだけです。

python3.batについても繰り返します

また、pipやその他のユーティリティでも同じことができます。ファイル内のpythonという単語をpipまたはファイル名に置き換えてください。エイリアスは、ファイルに付けられた名前になります。

何よりも、WindowsがPATHに追加されると、Windowsは拡張機能を無視するため、実行されます

python3

python3バージョンを起動し、python2コマンドはpython2バージョンを起動します。

ところで、これはSpyderがWindowsのパスに自分自身を追加するために使用するのと同じテクニックです。:)


1
既存のpythonファイルを変更せずに素晴らしいソリューション。
Om Prakash 2018年

3

1台のマシンに複数のバージョンのPythonをインストールできます。セットアップ中に、それらの1つにPythonファイル拡張子を関連付けるように選択できます。モジュールをインストールする場合、バージョンごとに異なるセットアップパッケージが存在するか、ターゲットにするバージョンを選択できます。それらは通常、インタープリターバージョンのsite-packagesディレクトリにインストールされるため、競合は発生しません(ただし、これはテストしていません)。Pythonのバージョンを選択するには、インタープリターがデフォルトのパスでない場合、そのパスを手動で指定する必要があります。私の知る限り、これらは同じPATH変数とPYTHONPATH変数を共有するため、問題になる可能性があります。

注:私はWindows XPを実行しています。他のバージョンでこれが変更されるかどうかはわかりませんが、変更される理由はわかりません。


3
私はpython 2.5、2.6、3.1をすべて同時にインストールしていますが、必要なバージョンごとにすべてのインストーラーを実行するよりも難しいことをする必要があるとは思いもしませんでした。
SingleNegationElimination 2010

3

Python 2.7とPython 3.4がインストールされている自分のWindowsコンピューターで私が行ったことは、Python.exeファイルと同じディレクトリに単純な.batファイルを書き込んだことです。彼らは次のように見えます

cmd /k "c:\python27\python.exe" %*

%*を使用すると、後で引数(Pythonファイル)を追加できます。/ kはスクリプトの実行が終了した後もプロンプトを開いたままにしていると思います。次に、それをpython27.batとして保存します。次に、Python 3ディレクトリに移動して、そこにbatファイルを作成します。今私のコマンドラインで書くことができます

Python27 helloworld.py

または

Python34 helloworld.py

また、それぞれのバージョンのPythonで実行されます。c:\ python27c:\ python34が環境変数に含まれていることを確認してください。

私はここから答えを得ました


2

私はここの指示に従って3つのステップでこれを行いました:これはすべてここから直接取得されます:http : //ipython.readthedocs.io/en/stable/install/kernel_install.html。現在Windows 8でPython 2.xを実行していて、Anaconda 4.2.13をインストールしています。

1)最初に最新バージョンのpythonをインストールします。

conda create -n python3 python=3 ipykernel

2)次にpython3をアクティブにします

activate python3

3)カーネルをインストールします。

python -m ipykernel install --user

Python 3がインストールされていて、2をインストールする場合は、上記の2と3を切り替えます。新しいノートブックを開くときに、Python 2または3を選択できるようになりました。


1

Pythonのインストール後にシステム環境変数を確認します。Python3のディレクトリが最初にPATH変数にあり、次にpython 2です。

最初に一致するパス変数がWindowsで使用されるものです。

いつものように、このシナリオではpy -2がpython2を起動します。


1

私自身もその問題に遭遇し、ランチャーを.batで作成したので、起動するバージョンを選択できます。

唯一の問題は、.pyがpythonフォルダーにある必要があることですが、とにかくここにコードがあります:

Python2の場合

@echo off
title Python2 Launcher by KinDa
cls
echo Type the exact version of Python you use (eg. 23, 24, 25, 26)
set/p version=
cls
echo Type the file you want to launch without .py (eg. hello world, calculator)
set/p launch=
path = %PATH%;C:\Python%version%
cd C:\Python%version%
python %launch%.py
pause

Python3の場合

@echo off
title Python3 Launcher by KinDa
cls
echo Type the exact version of Python you use (eg. 31, 32, 33, 34)
set/p version=
cls
echo Type the file you want to launch without .py (eg. hello world, calculator)
set/p launch=
cls
set path = %PATH%:C:\Python%version%
cd C:\Python%version%
python %launch%.py
pause

それらを.batとして保存し、内部の指示に従います。


0

最もよく使用するもの(私の場合は3.3)を他の上にインストールします。これにより、IDLEは必要なものを強制的に使用します。

あるいは(python3.3 READMEから):

複数のバージョンをインストールする

UnixおよびMacシステムで、同じインストールプレフィックス(configureスクリプトの--prefix引数)を使用して複数のバージョンのPythonをインストールする場合は、プライマリバージョンのPython実行可能ファイルが別のバージョンのインストールによって上書きされないように注意する必要があります。「make altinstall」を使用してインストールされたすべてのファイルとディレクトリには、メジャーバージョンとマイナーバージョンが含まれているため、共存できます。「make install」は、$ {prefix} /bin/pythonX.Yを参照する$ {prefix} / bin / python3も作成します。同じプレフィックスを使用して複数のバージョンをインストールする場合は、どのバージョン(ある場合)を「プライマリ」バージョンにするかを決定する必要があります。「make install」を使用してそのバージョンをインストールします。「make altinstall」を使用して他のすべてのバージョンをインストールします。

たとえば、2.7をプライマリバージョンとしてPython 2.6、2.7、および3.3をインストールする場合、2.7ビルドディレクトリで「make install」を実行し、その他のビルドディレクトリで「make altinstall」を実行します。


0

私はそれらをインストールする必要がありました。次に、http://defaultprogramseditor.com/の「ファイルタイプの設定」/「コンテキストメニュー」/ search: "py"にある無料の(およびポータブルの)ソフトを使用し、.pyファイルを選択して、「開く」コマンドを追加しました。 2「IDLEで開く」という名前の既存のコマンドをコピーし、名前をIDLE 3.4.1 / 2.7.8に変更して、プログラムパス内のそれぞれのバージョンのファイル番号を再実装することにより、IDLEを実行します。次に、.pyファイルを右クリックして、使用するIDLEを選択します。必要に応じて、直接通訳でも同じことができます。


-1

Python IDEでコードを実行している場合にのみ機能します

私のWindowsオペレーティングシステムには、Python 2.7とPython 3.3の両方がインストールされています。ファイルを起動しようとすると、通常、Python 2.7 IDEで開きます。この問題を解決した方法は、Python 3.3でコードを実行することを選択したときで、Python 3.3 IDLE(Python GUI)を開いてファイルを選択し、IDLEでファイルを開いて保存しました。次に、コードを実行すると、現在開いているIDLEまで実行されます。それは2.7で逆に動作します。


-1

Windows 10proにpython 2.7.13とpython 3.6.1の両方をインストールしましたが、pip2またはpip3を試したときに同じ「致命的なエラー」が発生しました。

これを修正するために行ったのは、python 2およびpython 3ファイルのpython.exeの場所に移動し、それぞれのコピーを作成することです。次に、各コピーの名前をpython2.exeおよびpython3.exeに変更し、インストールフォルダ。したがって、各pythonインストールフォルダーには、pythonのバージョンに応じて、python.exeファイルとpython2.exeまたはpython3.exeの両方がありました。

これにより、pip2またはpip3のいずれかを入力したときの問題が解決しました。


-2

他に何も動作しない場合は、選択したいずれかのバージョン(iPythonを使用することをお勧めします)でインタープリターを開き、次のようにします。

import subprocess

subprocess.call('python script.py -flags')

現在使用しているPythonのバージョンを使用します。単一のスクリプトでは問題なく動作しますが、実行するスクリプトが多数ある場合、すぐに手に負えなくなります。その場合、これらのすべての呼び出しを含むバッチファイルをいつでも作成できます。最もエレガントな答えではありませんが、うまくいきます。

Linuxの異なるpythonバージョンのエイリアスを作成する方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.