setuptools, distribute, pip, virtualenv, virtualenvwrapper導入まとめ

  • setuptools

python標準のdistutilsの拡張として開発されました。
distutilsでは、pythonモジュールの(1)配布パッケージの作成、既存のパッケージから(2)モジュールのインストールの両方が行えます。
したがってsetuptoolsでも同様の処理を行うことがきでます。

  • distribute

setuptoolsは既に開発がとまってしまいほとんどメンテナンスされていませんでした。
そこでその後継としてdistributeが開発されました。互換性も保たれています。
後継ということで、setuptoolsよりもメンテナンスがしっかり施されており、環境依存が少なかったり、たとえエラーが発生してもその原因がわかりやすいなど、より安定して使用できると言われています。

  • pip

pipもsetuptoolsやdistributeと同じくパッケージ管理のツールです。
ただしdistributeがsetuptoolsの後続として、その機能全体を継承しているのに対して、
pipはsetuptoolsのなかのeasy_installというパッケージのインストールに関する部分のみの機能を拡張提供しています。
easy_installとの一番の違いは、インストールしたモジュールのアンインストールまでサポートしている点です。
easy_installでは手動でアンインストールしていたパッケージも、pipならコマンドひとつで済んでしまいます。

  • virtualenv

virtualenvはその名のとおりpythonで開発するにあたって、pythonのバージョンやインストールされているパッケージの種類などが異なる仮想環境を提供します。

  • virtualenvwrapper

こちらも名前のとおりvirtualenvのラッパーです。
ただしvirtualenwrapperはpythonモジュールとしてパッケージで提供されているにもかかわらず、その実態は単なるシェルスクリプトです。
virtualenv単体では細かいコマンドを数々の引数を伴って実行しなければなりませんが、virtualenvwrapperを使うことで格段に分かりやすくなります。
ただし最近、virtualenvwrapperでは内部でeasy_installではなくdistributeを使うようになったようで、その関係なのか、僕の場合には導入時にエラーが発生してしまいました。
ちなみに僕はeasy_install -> pip -> virtualenv -> virtualenvwrapperの順番でインストールしていました。
easy_installの代わりにdistributeを使って、もう一度pipから入れなおしたらエラーも発生せず無事導入することができました。