virtualenv имеет замечательную особенность, в которой он создает свою копию с еще парой хуков.В вашем случае важным хуком является after_install, который будет выполняться сразу после установки virtualenv.
Просто создайте скрипт со следующим содержимым:
import os, virtualenv
extra_text = """
import os, subprocess
def after_install(options, home_dir):
subprocess.call([
os.path.join(home_dir, 'bin', 'pip'),
'install',
'-r',
'relative_path_from_env_home_to_requirements_file',
])
def adjust_options(options, args):
if not args: args.append('.')
"""
output = virtualenv.create_bootstrap_script(extra_text)
open('bootstrap.py', 'w').write(output)
и выполните его.Он создаст файл bootstrap.py
, который должен выполнить ваш собеседник для начальной загрузки как virtualenv, так и требуемых пакетов:
./bootstrap.py --no-site-packages
virtualenv создается в корне проекта, поэтому обязательно svn: ignoreили .gitignore созданные dirs перед фиксацией.
Единственный недостаток этого заключается в том, что AFAIK не интегрирован с virtualenvwrapper.Но в любом случае смысл этого в том, чтобы окружение было в проекте, а в virtualenvwrapper - окружение в вашем домашнем каталоге.