複数バージョンのPythonを使い分ける

なんとなくネタとして。 Pythonは大きく2系と3系になってますが、そろそろ3系に移行しつつも2系のケアをしてあげないといけません。 なので必然的に複数バージョンのPythonを使い分けることになります。 なんかそういうの簡単にできちゃうよーという 超便利ツール があるらしいですが なんでわざわざツールの使い方覚えないといけないのかさっぱり理解不能なので、 超便利ツール にさっぱりついてけないなりのやり方をメモっておきます。

方針とか

  • プロジェクト内ごとの環境は virtualenv を使う
  • tox を使ってバージョンごとのテストなどを実行する
  • /opt/python-{version} にインストールする
  • バージョンつきの pythonコマンド(python3.4,``python2.7`` など) は PATHに常に含まれるようにする

とりあえずvirtualenvするには python コマンドの場所だけわかれば十分です。 /opt/python-{version} にインストールしてあれば、 virtualenv -p /opt/python-{version}/bin/python で作れます。

python3.4 などのバージョンつきのコマンドをPATHに入れるのはtox用です。 toxでデフォルトで使えるtestenvでpy34,py33などは、これらのコマンドがPATHにあると使えます。

手順

まず /opt 以下に インストールします:

$ ./configure --prefix=/opt/python-3.4.0
$ make
$ sudo make install

$HOME/bin にリンクを貼ります:

$ cd $HOME/bin
$ ln -s /opt/python-3.4.0/bin/python3.4 .

一応 $HOME/bin がPATHに入るように profile などに設定してあるか確認しましょう。

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

こんな感じの設定があればOKです。

使い方

virtualenvするときに -p オプションでインタプリタを指定しましょう。

$ virtualenv -p python3.4

マイナーバージョンまで指定が必要であれば、 /opt 以下のインストール先を指定します。

$ virtualenv -p /opt/python-3.3.4/bin/python

まとめ

簡単すぎて記事にするまでもなかったですね!

Comments !

blogroll

social