我正在寻找一种方法,从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上面的回答给了我这个想法。