All my Django sites are running 1.2, which poses a conflict with writing apps for Google's App Engine, as use_library currently only supports < Django 1.1. There are two solutions that I found: a) use virtualenv, or b) chroot, which I've already detailed. This document will hopefully show you how to create a virtual environment to use a secondary django version, especially for GAE. Of the two options, I think this one is a bit quicker, but there will likely be tradeoffs that a chroot environment can deal with better, e.g. python imaging (I don't use it for GAE).
First, install PIP and virtualenv:
kelvinn@kelvinn-laptop:~/workspace$ sudo easy_install -U pip kelvinn@kelvinn-laptop:~/workspace$ sudo pip install -U virtualenv
Second, configure an environment for any app that will use Django 1.1:
kelvinn@kelvinn-laptop:~/workspace$ virtualenv --no-site-packages django-1.1 New python executable in django-1.1/bin/python Installing setuptools............done. kelvinn@kelvinn-laptop:~/workspace$ pip install -E django-1.1 yolk kelvinn@kelvinn-laptop:~/workspace$ pip install -E django-1.1 Django==1.1
Now, download the python GAE sdk and put it in the django-1.1 folder. I also just dump any project directory requiring Django 1.1 into this django-1.1 folder, although I guess you could create a virtualenv for each project. The last thing to do is start the virtual environment, and run the GAE app.
kelvinn@kelvinn-laptop:~/workspace$ source django-1.1/bin/activate (django-1.1)kelvinn@kelvinn-laptop:~/workspace$ yolk -l (django-1.1)kelvinn@kelvinn-laptop:~/workspace$ cd django-1.1 (django-1.1)kelvinn@kelvinn-laptop:~/workspace/django-1.1$ ls bin google_appengine include lib myproject1 myproject2 (django-1.1)kelvinn@kelvinn-laptop:~/workspace/django-1.1$ google_appengine/dev_appserver.py myproject1
When you're all finished, you can jump out of virtualenv:
(django-1.1)kelvinn@kelvinn-laptop:~/workspace/django-1.1$ deactivate
Update: You'll find this article especially interesting if you get an error such as the following:
UnacceptableVersionError: django 1.1 was requested, but 1.2.0.beta.1 is already in use
This entry is from my tutorial section and was written on June 12, 2010. It's been tagged with django and gae and python and ubuntu.
"So far we only got one case." -Yan-Shih bidding on auction wine. (about 2 weeks, 4 days ago)