如何在python中激活pyvenv vitrualenv?(activate_this.py已被删除?)

Chr*_*per 19 mod-wsgi python-3.x

我正在使用Python 3.4,并创建了pyvenv,我希望在python进程中激活它.使用virtualenv,我曾经使用过activate_this.py,但这似乎在pyvenv中消失了.

现在有一种简单的方法可以有效地将当前的解释器更改为virtualenv解释器吗?我可能会搞乱PATH(这就是做了什么activate_this.py),但我想要一种更简单,更稳定的方式.

这适用于wsgi.py.

Sha*_*ger 8

pyvenv并且venv模块不支持开箱即用.第三方virtualenv软件包支持使用activate_this.py,但该功能未包含在内置venv模块中.

您可以尝试activate_this.pyvirtualenv基础环境中借用一份副本; 它似乎工作,虽然我不能发誓它将是完美的(venv/ pyvenv在启动时使用一些魔法;不清楚是否所有它都通过复制activate_this.py).

virtualenvPython 3 的文档已经过时了(他们声称你使用的execfile,不存在).Python 3兼容的替代方案是:

activator = 'some/path/to/activate_this.py'  # Looted from virtualenv; should not require modification, since it's defined relatively
with open(activator) as f:
    exec(f.read(), {'__file__': activator})
Run Code Online (Sandbox Code Playgroud)

没有什么activate_this.py确实是神奇的,所以你可以手动执行相同的变化,而不从掠夺virtualenv(调整PATH,sys.path,sys.prefix,等),但借款使得它在这种情况下要简单得多.