http://pypi.python.org/pypi/virtualenv
and of Doug Hellmann's virtualenvwrapper:
http://www.doughellmann.com/projects/virtualenvwrapper/
What virtualenv does, basically, is create an isolated Python
environment into which you can install stuff without affecting any
other Python software on your system. And virtualenvwrapper provides
tools for easily creating, removing and working with virtualenvs.
So my workflow these days goes something like this:
mkvirtualenv somepythonproject
(this creates a new virtualenv, named "somepythonproject", and drops
me into it; if I come back later in another shell, "workon
somepythonproject" will put me back in the virtualenv)
From there I have easy_install for installing Python packages I want
to try out, or I can use the "add2virtualenv" function in
virtualenvwrapper to add a directory to the virtualenv's Python path.
For example:
add2virtualenv ~/dev/my-django-apps/
Within the virtualenv, everything I've installed or added to it is
available, but it doesn't affect anything else on my system; I can
blow it away with no repercussions if I mess something up, or keep
adding/tweaking stuff as needed.
It's even getting easier to do real deployment with this, too;
mod_wsgi supports a directive that lets you point it at a virtualenv
to run a site out of a completely-sandboxed environment, so you can
simply use normal tools within the virtualenv to set things up and not
worry about clashing with anything else.
If you haven't looked into this, I highly recommend it. And maybe in
the 2nd edition of the book I'll try to explain this a bit more
clearly...
--
"Bureaucrat Conrad, you are technically correct -- the best kind of correct."