I'm using a simple heuristic that the guy(s?) who created and maintain virtualenvwrapper is(are) much smarter than I am - however, not (automagically) adding the newly created environment to the path, reeks of incompetence bordering on malice.

It is highly unlikely (no, impossible) that the developer/mainteners are that incompetent - which leaves the only possible explanation to be that I'm missing something obvious and doing something foolish.

You don't need to run python django-admin.py (in fact you shouldn't), just run django-admin.py. python isn't searching your $PATH; it's going to look for the file in the current directory. So long as django-admin.py has its execute bit set, you can use it as a command without explicitly running python.

It also installs itself as django-admin, so you can make the command line a little cleaner:

django-admin startproject mysite

You don't need the .py extension.

The underlying reason is that virtualenv modifies $PATH, which is what your shell (bash or whatever) uses to locate the command to execute. When you run python foo.py, the command is python, and $PATH is searched for that. foo.py is just a command argument, and your shell doesn't look for that at all. When python runs, it looks for foo.py in the current directory (and also accepts a relative path like ../otherdir/foo.py or an absolute path like /home/someone/foo.py); it doesn't care about $PATH at all.