python setup.py installに対する違和感

簡単にライブラリがインストールできるPython

Pythonのモジュールは、ソースのディレクトリに移動して

python setup.py install

とやれば大抵インストールすることが出来ます。

あるいは、easy_installを使えば

easy_install (パッケージ名)

Rubyのgemのようにレポジトリからインストールすることができます。


気になるところ

非常に便利なのですが、インストール先を指定しない場合、%PYTHON_HOME%\Libs\site-packages\にインストールされることになります。
ここにインストールされると、(インストールされたマシンの)どこからでもそのライブラリを使うことが出来るようになるのですが、複数のライブラリを入れて使うようになると以下のようなデメリットがあります。

  • ライブラリの管理が面倒になる
  • ある環境で作ったシステムを他のシステムに移すと動かなくなる
  • ライブラリのバージョンを新しくしたら他のシステムが動かなくなる可能性がある

など

Javaの場合

Javaの場合、%JAVA_HOME%\jre\lib\ext(あるいは%JRE_HOME%\lib\ext)にjarファイルを置くと、どこからでもそのライブラリが使えるようになるのですが、これは先ほどいったデメリットからあまり推奨されていません。
Javaで開発を行う場合、IDEを使っている場合がほとんどであり、ビルドパスの追加が容易にできるので、開発するシステムごとにライブラリを指定することが多いのではないでしょうか。

終わりに

私がJava出身ということで少し気になったのですが、Pythonはちょっとした処理を書いたりというような用途も多いので、どこからでも使えることのメリットが大きいことからあまり重要ではない問題なのかもしれません。
あるいは、virtual-pythonなどを使って専用の環境を作るようにしている人も多いのかな?