创建自己的启动脚本
Wrongway提示:该段一般情况下初学者用不到,所以刚接触virtualenv的朋友不要在此节投放过多精力。Virtualenv的文档讲解顺序是有点问题。
创建隔离环境时,virtualenv不会执行额外操作。但开发者有时会想在安装隔离环境后运行某个脚本。例如用脚本安装某个web应用。
要创建上述脚本,需要调用virtualenv.create_bootstrap_script(extra_text)
,将后续操作写入到生成的启动脚本,以下是从docstring中生成的文档:
启动脚本与一般脚本无异,只是多了三个extend_parser, adjust_options, after_install三个钩子方法。
create_bootstrap_script返回一个可定制的,能做为启动脚本的字符串(当然,该字符串后面要写回到磁盘文件中)。这个字符串是一个标准的virtualenv.py脚本,用户可以自行添加内容(所加内容必须是python代码)。
如果定义了下列方法,运行脚本时就会被调用:
extend_parser(optparse_parser)
:- 可以在解析器optparse_parser中添加或删除参数。
adjust_options(options, args)
:- 调整options,或改变args(如果要接收各种不同的参数,一定要在最后将
args
修改为[DEST_DIR]
) after_install(options, home_dir)
:
在所有代码和模块安装完之后,就会调用该方法。这可能是用户最喜欢的方法,例如下:- def after_install(options, home_dir):
- if sys.platform == 'win32':
- bin = 'Scripts'
- else:
- bin = 'bin'
- subprocess.call([join(home_dir, bin, 'easy_install'),
- 'MyPackage'])
- subprocess.call([join(home_dir, bin, 'my-package-script'),
- 'setup', home_dir])
上述例子会安装一个包,并运行包内的setup脚本
wrongway在这里强调:上述三个方法并不是独立方法,而是一段代码字符串!!也就是extra_text的内容。有点象javascript下的eval(‘……代码字符串……’)