python-3.x - 如何从 python 中激活 pyvenv vitrualenv? (activate_this.py 被删除了?)

标签 python-3.x mod-wsgi

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

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

这是在 wsgi.py 中使用的。

最佳答案

pyvenvvenv模块不支持这个开箱即用。第三方virtualenvdoes support this using activate_this.py , 但是 that feature was not included in the built-in venv module .

你可以试试借activate_this.py来自 virtualenv基于环境;它似乎工作,虽然我不能发誓它会是完美的(venv/pyvenv 在启动过程中使用了一些魔法;不清楚是否所有这些都是通过 activate_this.py 复制的)。
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})

没有activate_this.py确实很神奇,因此您可以手动执行相同的更改而无需从 virtualenv 中掠夺(调整 PATHsys.pathsys.prefix 等),但在这种情况下借用会更简单。

关于python-3.x - 如何从 python 中激活 pyvenv vitrualenv? (activate_this.py 被删除了?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462582/

相关文章:

python - 如何根据其他列的值在数据框中创建新列?

python-3.x - Python 数据帧 : transpose one column into multiple column

python - Pandas .agg 中的过滤计数

python-3.x - 如何在 R 脚本 ".rive"脚本中执行 Python 对象宏?

python - 尝试使用 mod_wsgi 启动 Pyramid 应用程序时没有名为 deploy 的模块

python-3.x - 在 Colab 中使用 NeuralCoref 的属性错误

具有 Django REST 框架的本地和 mod_wsgi 服务器之间的 Django JWT 身份验证行为不同

python - 使用 root 权限部署 Flask 应用程序

python - 当我尝试运行 Flask 应用程序时,为什么 apache 不加载我的 .so 库?

Python:无法连接到 HTTPS URL,因为 SSL 模块不可用