首页 > 解决方案 > 如何检查 Python venv 在 Windows 中是否处于活动状态?

问题描述

我正在寻找一种方法,从 Windows CMD 或 Powershell 中检查 Python 虚拟环境是否已被激活。在 Bash 中,可以使用此条件来检查 venv 是否处于活动状态。

if [[ "$VIRTUAL_ENV" != "" ]]

我也在 Bash 中看到过这种做法,我可能可以让它在 Windows 上运行,但感觉就像是一种 hack,而且尽管我们都喜欢一个好的 hack,但我觉得应该有更好的方法。

PYTHON_ENV=$(python -c "import sys; sys.stdout.write('1') if hasattr(sys, 'real_prefix') else sys.stdout.write('0')")

是否有任何记录在案的、直接的方法来做到这一点?

标签: python-3.xwindowscommand-linepython-venv

解决方案


当然,我在这里提出问题后不久就想出了一种方法,但我会在此处发布此作为答案,因为我无法在网站上的其他任何地方找到此信息。$VIRTUAL_ENV正如预期的那样,当虚拟环境处于活动状态时,Powershell(可能还有 CMD,虽然我自己没有测试过)会获得一个环境变量集 , 。这可以在具有以下条件的 Powershell 脚本中轻松测试:

if (Test-Path env:VIRTUAL_ENV) {...

希望这可以帮助那里的人


推荐阅读