I\'m using virtualenvwrapper in my deployment. To setup new environments, I\'m running a python script, which contains all needed steps.
The setupscript includes:
mkvirtualenv might be a shell function that is added to your environment by sourcing virtualenvwrapper.sh script from your shell's startup file. The default command invoked on shell=True (e.g., /bin/sh -c ...) might not read it.
You could source the file explicitly:
import pipes
from subprocess import check_call
check_call("""source /path/to/virtualenvwrapper.sh &&
mkvirtualenv --no-site-packages """ + pipes.quote(envname),
executable='bash', shell=True)