如何检查 Python venv 在 Windows 中是否处于活动状态?
How to check if Python venv is active in 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')")
有没有记录在案的直接方法来做到这一点?
当然,我在此处提出问题后不久就找到了执行此操作的方法,但我将 post 将其作为此处的答案,因为我无法在网站的其他任何地方找到此信息。正如预期的那样,当虚拟环境处于活动状态时,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 上面的回答给了我灵感。
我正在寻找一种方法,从 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')")
有没有记录在案的直接方法来做到这一点?
当然,我在此处提出问题后不久就找到了执行此操作的方法,但我将 post 将其作为此处的答案,因为我无法在网站的其他任何地方找到此信息。正如预期的那样,当虚拟环境处于活动状态时,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 上面的回答给了我灵感。