我正在使用 Python 3.4,并创建了 pyvenv,我希望从 python 进程中激活它。对于 virtualenv,我曾经使用过activate_this.py
,但这似乎在 pyvenv 中消失了。
现在有没有一种简单的方法可以有效地将当前解释器更改为 virtualenv 解释器?我可能会弄乱路径(这就是activate_this.py
做了),但我想要一种更简单、更稳定的方法。
这是在 wsgi.py 中使用的。
pyvenv
和venv
模块不支持开箱即用。第三方virtualenv
包裹确实支持这个使用activate_this.py https://virtualenv.pypa.io/en/latest/userguide.html#using-virtualenv-without-bin-python, but 该功能未包含在内置中venv module https://bugs.python.org/issue21496.
你可以尝试借一份activate_this.py
from a virtualenv
基础环境;它似乎有效,尽管我不能发誓它会是完美的(venv
/pyvenv
在启动过程中使用一些魔法;不清楚是否所有内容都是通过复制的activate_this.py
).
The virtualenv
它的文档对于 Python 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})
Nothing activate_this.py
确实很神奇,所以你可以手动执行相同的更改,而无需从virtualenv
(调整PATH
, sys.path
, sys.prefix
等),但在这种情况下借用会使事情变得简单得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)