无法在 Windows 10 中使用 Pipenv .env 文件定义空环境变量

Cannot define empty environment variable with Pipenv .env file in Windows 10

我是 Pipenv 的新手。我希望能够使用 .env 文件为环境变量分配一个空值。

这是我的.env

FOO=abc
BAR=

我用 pipenv shell 激活了虚拟环境,并期望变量 BAR 是一个空字符串,但它根本没有定义。

> python -c "import os; print(repr(os.environ.get('FOO', 'Not defined')))"
'abc'
> python -c "import os; print(repr(os.environ.get('BAR', 'Not defined')))"
'Not defined'

但是,当我在 WSL2 Ubuntu 中使用相同的 Pipenv 版本执行相同操作时,BAR 被定义为预期的空字符串。

$ python -c "import os; print(repr(os.environ.get('BAR', 'Not defined')))"
''

谁能给点建议?

SET BAR=

在Windows批处理中用于取消设置变量而不是将其设置为空值。

所以 .env pipenv 中的实现基本上是为文件中定义的任何变量设置任何值。在 Windows Batch.

中可能没有简单的方法来定义具有空值的变量

尝试修改您的脚本以使用某种布尔值(0/1、on/off、true/false、...)如果您需要布尔值,或者在不需要时使用合理的值已定义或为空。

from os import getenv

var_x = getenv('BAR', '') or 'default_value'

var_bool = getenv('BAZ', '0').strip() == '1'