无法在 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'
- OS: Windows 10
- Python 3.9.2
- Pipenv 2020.11.15
但是,当我在 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'
我是 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'
- OS: Windows 10
- Python 3.9.2
- Pipenv 2020.11.15
但是,当我在 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'