勉強会でも質問があったので書いておきます。
プロジェクトごとに異なるバージョンのDjangoを使いたいときはどうするか。
とても簡単。
プロジェクトディレクトリに、使いたいバージョンのdjangoをそのままコピー(もしくはシンボリックリンクを作成)するだけです。
Pythonがモジュールをロードするときに参照するディレクトリの順番を考えたらこれでokだという。
結局、Djangoはインストールしなくてもコピーするだけで動くという話でもあります。
バージョンを表示するだけのプロジェクトを作って確認してみた。
views.pyはこんな感じ。
from django.core.management import get_version from django.http import HttpResponse def index(request): return HttpResponse(get_version())
SVN版がインストールされているので、SVN版のバージョンが表示される。
0.96.1のdjangoをプロジェクトディレクトリに置いて開発サーバを再起動。
0.96.1になった。
2012/04/20追記
複数バージョンの共存方法を検索してこのページに辿りついてる人がいるっぽいので追記。
今だとvirtualenvやbuildoutを使ってプロジェクトごとの環境を作るのが無難です。