To this day I'm not quite sure why the venv developers decided that sourcing was a good idea; all it does can be effectively replaced with
#!/bin/sh export VIRTUAL_ENV="path to venv" export PATH="$VIRTUAL_ENV/bin:$PATH" unset PYTHONHOME exec "$SHELL"
exec "${@:-$SHELL}"
http://www.catb.org/~esr/writings/taoup/html/ch06s06.html
To this day I'm not quite sure why the venv developers decided that sourcing was a good idea; all it does can be effectively replaced with
Just run this script to get into an "activated" shell. To deactivate, just press Ctrl+D. If you're really fancy, you can replace the last line with to run a command directly in the activated environment (and then deactivate it immediately).