如何检查 Python venv 在 Windows 中是否处于活动状态?

sen*_*x13 7 windows command-line python-3.x python-venv

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

if [[ "$VIRTUAL_ENV" != "" ]]
Run Code Online (Sandbox Code Playgroud)

我也看到过在 Bash 中完成此操作,我可能可以让它在 Windows 上工作,但这感觉像是一种 hack,尽管我们都喜欢好的 hack,但我觉得应该有更好的方法。

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

有没有记录在案的、直接的方法来做到这一点?

sen*_*x13 7

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

if (Test-Path env:VIRTUAL_ENV) {...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助那里的人