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

Pythonはつい先日、最新バージョンである3.2がリリースされました。

この言語は2.x系と3.x系の2系統がメンテナンスされていますが、2.x系は2.7が最後のメジャーバージョンであると宣言されています。
Python 2.7は今後、バグフィックスだけメンテナンスされ、新機能は3.x系統にだけ追加されるとも公表されています。
なので、これからPythonをやってみようという方は、Python 3.2をインストールされることをお勧めします。

ですが、これまでに世に出て使われている多くのフレームワークなどは、2.x系統で開発されてきました。
今後は3.x系統への対応が進むとは思いますが、まだ先の話になりそうです。
そうなると、2.x系統をインストールしておきたくなる気持ちもあります。


今回は、複数バージョンのPythonをPCにインストールして利用する1つの方法をご紹介します。
なお、対象とするプラットフォームはWindows OSです。
Linux系はPython使いが多いという個人的印象もあり、いろいろな複数バージョン管理の方法があるようです。
ただ、Windowsではこれといって話を聞かないですし、winhackが趣味(今初めて言いますw)の私なので、このOSでのお話をします。


1. 複数管理するPythonのバージョンを決める


まずは、どのバージョンのPythonを利用するか考えます。
ここで大事なのは、一番使うであろうバージョンをあらかじめ1つ選んでおくということです。
今回は、Python 2.7.1とPython 3.2をインストールすることとし、3.2をメインのバージョンとします。


2. Pythonをインストールする


続いて、各バージョンのPythonをインストールしていきます。
Windows環境なので、公式サイトから欲しいバージョンのmsiファイルをダウンロードしておきましょう。

2.1. メイン使いでないバージョンからインストールする


先ほどメインに使うバージョンを決めて欲しいとお話ししましたが、インストール順序に関係があります。
Pythonのmsiインストーラを利用した場合、.py(Pythonスクリプト)ファイルは最後にインストールしたバージョンのPythonに関連づけられます。
ですから、利用率の低いバージョンを先にインストールしておくことで、もっと利用率の高いバージョンで関連づけを上書きしてもらおうという意図です。

今回の例では、まずPython 2.7.1からインストールしていきます。
Python 2.7.1のインストール

3つ以上のバージョンを管理したい場合、メイン1つ以外のバージョンはここで全てインストールしておきます。

2.2. メイン使いのバージョンをインストールする


メイン以外のバージョンが全てインストールできたら、今度はメインバージョンのPythonをインストールします。

今回の例では、Python 3.2をインストールします。
Python 3.2のインストール

複数のバージョンをインストールした場合でも、特に問題なくインストールは完了すると思います。


3. 環境変数PATHを設定する


インストールが無事終わったら、今度は環境変数の設定です。
インストール直後の状態では、例えばコマンドプロンプトで
> python
と入力して実行しても
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とつれなく返されるのがオチです。

環境変数はユーザー環境変数システム環境変数の2種類があります。
どちらに追加しても構いませんが、同じPCに複数ユーザがいて、環境変数を汚したくない、という場合などはユーザー環境変数の方に追加しましょう。

環境変数PATH

追加する順序は、一番利用するバージョンのパスから順に追加していってください。
これは、$PATHの探索順も兼ねており、'python'と入力して最初に見つけたモジュールが起動されることになるからです。
(メインのバージョンが格納されたパスだけ追加しても構いません。その際、以降の手順に一部修正が必要です)



4. シンボリックリンク的なバッチを作る


さて、これでメインのPythonを利用する分には問題が無くなりました。
ですが、メインでないバージョンは、フルパスで実行ファイルを叩かないと動いてくれません。
これは大変面倒ですね。
なので、おまじないをかけて上げる必要があります。

今、Python 3.2とPython 2.7.1をインストールしました。
そこで、メインのバージョン(3.2)は'python'または'python3'をコールすることで起動し、もう一方のバージョン(2.7.1)は'python2'をコールすることで起動するように、ルールを決めます。

これを実現するために、それぞれのPythonが格納されたフォルダ($PATHに追加したフォルダ)に次のようなバッチファイルを作成します。

ex. Python 3.2のフォルダに作成するバッチ … Python3.bat
@echo off
C:\Python32\Python.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
Windowsでは、拡張子を省略した呼び出しは、exeファイルやbatファイルを呼び出しているものと見なされます。
なので、ここでは'python3'としてコマンドプロンプトなどから実行すると、Python 3.2のフォルダに作成したPython3.batが呼び出されるのです。

同様に、Python 2.7.1のフォルダにはPython2.batを作成しておきましょう。
(3章でメインのパスのみ$PATHに追加した場合、Python2.batはメインPythonのフォルダ内に作成してください。)


5. Let's enjoy Python-ing!


これで、複数バージョンのPythonをかなり自由に扱えるようになりました。
call python2

これで、普段はPython 3.2でプログラミングしながら、例えばDjangoを触る際はpython2経由で呼び出すことができるようになります。

Let's enjoy Python-ing!

トラックバックURL

#84 複数バージョンのPythonをインストールする へのトラックバック

  1. 1.

    複数のバージョンのPythonインストール 複数のバージョンのPythonインストール

    複数バージョンのPythonをPCにインストールして利用する1つの方法http://blog.livedoor.jp/gab_km/archives/1273488.htmlこれは助かります。ありがとうございます。32bitと64bit混在でもいけるとありがたい。Python1...
    • Pinged by Rendering学習日記
    • 2012年01月15日 00:12

#84 複数バージョンのPythonをインストールする へのコメント一覧

まだコメントはありません。

コメントする

#84 複数バージョンのPythonをインストールする にコメントする
絵文字
プロフィール
あわせて読みたい
あわせて読みたい
記事検索
Project Euler
なかのひと
アクセス解析
Coderwall
  • ライブドアブログ

トップに戻る