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 创建的目录。
唯一的缺点是 AFAIK 它没有与 virtualenvwrapper 集成。但无论如何,这样做的理由是在项目中拥有环境,而 virtualenvwrapper 的一个目的是在你的 homedir 中拥有环境。