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



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

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

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

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

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

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

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

希望这对那里的人有所帮助

在 Bash 脚本(在 Ubuntu 18.04 上,使用 python3(检测然后在必要时激活 python 虚拟环境......

if [ -z ${VIRTUAL_ENV} ]; then 
    echo "VIRTUAL_ENV is is ..."; 
    source ./venv/bin/activate
    echo "ready."
fi

不幸的是,它还停用了我编写的脚本中的虚拟环境。

Senox13上面的回答给了我这个想法。

相关内容

最新更新