Here's what I've found that helps tremendously:
-Keep your software in a DVCS of some sort. I find Git and Mercurial to be great.
-Use virtualenv to abstract away from your current environment's Python distribution. Start clean and download the packages you need.
-Create a requirements file listing the packages that you need for you program. Put it in the same format that the 'pip freeze' command outputs, so that installing a new environment is quick and easy.
-Set up a local configuration file (not managed by version control) and a base configuration file with all the settings that are immutable. Import the local config file within settings.py so as to avoid local setting conflicts.
-In production, set up an nginx frontend to serve static files, and route all the Django urls to an Apache backend (or Tornado, or whichever App server you may want to use).
-I haven't tried anything else, but WSGI is super intuitive and easy to use.
-If you need it, try using Django-South for versioning database schemas. Do take into account that it has a bit of a learning curve.
-You don't need to put your python files in /var/www, any directory will do.