我正在尝试创建一个脚本,如果尚未创建virtualenv,然后在其中安装requirements.txt.
我无法调用普通的源/ env / bin / activate并激活它,然后使用pip来安装requirements.txt.有没有办法激活virtualenv然后从单个python脚本安装我的要求?
我的代码目前:
if not os.path.exists(env_path):
call(['virtualenv', env_path])
else:
print "INFO: %s exists." %(env_path)
try:
call(['source', os.path.join(env_path, 'bin', 'activate')])
except Exception as e:
print e
错误是“没有这样的文件目录”
谢谢
解决方法:
source是shell内置命令,而不是程序.它不能也不应该用子进程执行.您可以通过在当前进程中执行activate_this.py来激活新的虚拟环境:
if not os.path.exists(env_path):
call(['virtualenv', env_path])
activate_this = os.path.join(env_path, 'bin', 'activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
else:
print "INFO: %s exists." %(env_path)