Djangoのバージョンを切り替えながら使う方法。この記事ではインストールされているDjangoのバージョンをまるごと変えてしまう方法です。プロジェクトごとにDjangoのバージョンを切り替えるならプロジェクトごとに異なるバージョンのDjangoを使う - 偏った言語信者の垂れ流しを読むと良いと思います。
ここではchdjango.pyを使うので、それの導入方法を主に書きます。
導入
chdjango.pyはdjangosnippets: chdjangoにあるので、これをシェルのパスが通ったところに置きます。(私の場合は /usr/local/bin に置きました)
cd /usr/local/bin wget -O chdjango.py http://djangosnippets.org/snippets/641/download/
こんな感じでよいと思います。
chdjango.pyは ~/django から、引数で指定されたディレクトリをPythonのパスに通してくれます。具体的には
~ `-django |-- 1.3.1 | `-- django `-- 1.4b1 `-- django
こんな感じにしておいて。
chdjango.py 1.3.1
このように実行します。もちろん予めDjangoがインストールされている場合は消しておく必要あると思います。
ハマりどころ
1つめは、バージョン番号のディレクトリ以下に直接 django の中身をおくのではなくて、ちゃんと django というディレクトリごと置くということです。そうでないと例えば import django.core が import core になってしまいます。
2点目は、chdjango.py は site-package に django.pth というファイルを置いてくれるのですが、この site-packages は os.pyc と同じディレクトリから探されるので、これにパスが通ってなかったり、存在しないとうまくいきません。私の場合は面倒なので chdjango.py を書き換えて dist-packages に django.pth を置くようにしました。
おわりに
なんでインストールされてるDjangoのバージョンをまるごと変えたいかと言うと、startprojectなどの挙動がバージョンごとに違う場合があるからです。たとえば 1.4 でプロジェクトディレクトリのレイアウトが変わったので、その点を試したりする場合にこの chdjango.py を使う方法が必要になると思います。