Pocket

こんにちは、maruchangです。久しぶりの投稿です。

早速ですが、皆さんはPythonを使っていますか?

・・・

・・・・・・

・・・・・・・・・

・・・・・・・・・・・・・・・・・・・・・なになに?RubyやPerlを使っているので、Pythonなど不要と・・・。なるほど。

ここで納得して終わらせると記事にならなくなってしまうので、めげずに続けたいと思います。普段はPythonを使わないよって人も、これからPythonを始めてみようかなって人も、pythonzを使って簡単にPythonの実行環境をインストールしてみましょう!

なお、本記事に使用する実行環境は、下記になります。

  • OS X Mountain Lion 10.8.2(Build 12C54)
  • CentOS release 5.8 (Final)(さくらのVPS 1G使用)
なんで上のふたつかというと、手元にあったからです。

pythonzってなんだろう?

自動的に(指定したバージョンの)Pythonのtarballをダウンロードしてきて、ビルドからインストールまでを一括して行なってくれるツールです。複数のバージョンを一括でインストールすることも可能です。Rubyでいうところの、RVMやrbenvに近いものがあります。
同様のツールにpythonbrewがあるのですが、これをforkして改良を加えたのがpythonzです。

なお、本記事では最初、pythonbrewを紹介しようと思ったのですが、作者が今後の更新頻度は少ないと宣言していることから、後継と思われるpythonzを紹介することにしました。

― http://www.ninxit.com/blog/2012/04/15/pythonbrewの今後とpythonz/から引用

pythonbrewの今後ですが、たまに手直しをすることはあるかもしれませんが、積極的に更新は行わない予定です。
開発を続けていくモチベーションの継続ってほんと難しいですね。仕事だったら別ですけど、お金が貰える訳でもないですし。
プルリクエストを頂いた場合は、わざわざ時間を割いて開発をしてくれたという気持ちも申し訳ないですし、出来るだけ反映していこうと思います。

pythonzの詳細については、下記のサイトをご覧ください。

https://github.com/saghul/pythonz

享受できるメリット

まず、煩わしいビルド&インストール作業を自分で行う必要がなくなります。コマンドひとつで、複数のバージョンをまとめてインストールすることも可能です。アンインストールもコマンドひとつ!
ほかに、PyPy やJythonをサポートしているようです。

ただ、残念なことにpythonbrewでは使えたバージョンの切り替え機能がなくなってしまいました。本記事では、virtualenvを利用してバージョン切り替えを行えるようにします。

インストール

では早速、pythonzのインストールと、Pythonのインストールを実践してみましょう!CentOSとMacOS Xで少し手順が異なるので、分けて書きました。

CentOS編

cd ~
sudo yum install python26
  # pythonzは2.6+が必要だが、CentOS5.8のデフォルトは2.4.3なので、追加でインストールする
# インストールスクリプトを取得して実行する
curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | sed -e "s/\/usr\/bin\/python/\/usr\/bin\/python26/" | bash
  # スクリプト内で/usr/bin/python(2.4.3)を参照しているので、sedで2.6を参照するように置換する

# .bashrcに、下記の内容を追記する
[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc

# .bashrcを再読み込み
source .bashrc

# pythonのインストール
pythonz install 2.7.3 3.2.3
  # $HOME/.pythonz/pythons/配下にインストールされる

rm $HOME/.pythonz/pythons/CPython-3.2.3/bin/python
  # シンボリックリンクが$HOME/.pythonz/pythons/CPython-3.2.3/bin/python3.2m-configに設定されているため
ln -s $HOME/.pythonz/pythons/CPython-3.2.3/bin/python3.2m $HOME/.pythonz/pythons/CPython-3.2.3/bin/python
ls -l $HOME/.pythonz/pythons/CPython-3.2.3/bin/python
  # lrwxrwxrwx 1 hoge hoge 60  9月 20 22:42 /hoge/fuga/.pythonz/pythons/CPython-3.2.3/bin/python -> /hoge/fuga/.pythonz/pythons/CPython-3.2.3/bin/python3.2m

MacOS X編

もし、Pythonのバージョンが2.5以下の場合は、別途2.6+をインストールしてください(Mountain Lionは2.7.2でした)。

cd ~
# インストールスクリプトを取得して実行する
curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash

# .bashrcに、下記の内容を追記する
[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc

# .bashrcを再読み込み
source .bashrc

# pythonのインストール
pythonz install 2.7.3 3.2.3
  # $HOME/.pythonz/pythons/配下にインストールされる

virtualenvを使用した仮想環境

virtualenvを利用すると、指定した場所にPythonの実行環境一式を仮想的に用意することができます。これを利用することで、複数のバージョンのPythonを切り替えて使用できるようになります。

virtualenvのドキュメントは、下記をご覧ください。

http://www.virtualenv.org/en/latest/index.html

では早速、仮想環境を作ってみましょう!

cd ~
wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
  # MacOS Xはwgetがないので、curlを使う
  # curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py

# 3.2.3の仮想環境を作成
$HOME/.pythonz/pythons/CPython-3.2.3/bin/python virtualenv.py --distribute ~/.pythonz/virtualenvs/python-3.2.3a

# 2.7.3の仮想環境を作成
$HOME/.pythonz/pythons/CPython-2.7.3/bin/python virtualenv.py --distribute ~/.pythonz/virtualenvs/python-2.7.3a

# 3.2.3に切り替える場合
. $HOME/.pythonz/virtualenvs/python-3.2.3a/bin/activate
# 2.7.3に切り替える場合
. $HOME/.pythonz/virtualenvs/python-2.7.3a/bin/activate
  # 仮想環境になると、コマンドプロンプトに「(python-3.2.3a)」というふうに、有効にした仮想環境が表示される

# 3.2.3に切り替えたあと
which python
  # /hoge/fuga/.pythonz/virtualenvs/python-3.2.3a/bin/python

# 仮想環境を終了するときは、下記のコマンドを実行する
deactivate

終わりに

いかがでしたか?ちょっとPythonやりたくなったなーとか、最新のバージョンを使いたいなーとか、そんなときにささっと環境を作ることができます。しかも、特定の場所に集めてインストールするので、既存の環境を汚さない!

興味が湧いたら、是非実践してみてください。もし、手順におかしな点があったらコメントをください。

それではまた!