将 `PYTHONWARNINGS` 设置为禁用 python 警告似乎无济于事

setting `PYTHONWARNINGS` to disable python warnings seems to do nothing

我目前是 运行 openstack 可执行文件,它会生成 python 弃用警告。

经过一番搜索,我确实找到了 this howto。

relevant part 在这里:

Use the PYTHONWARNINGS Environment Variable to Suppress Warnings in Python

We can export a new environment variable in Python 2.7 and up. We can export PYTHONWARNINGS and set it to ignore to suppress the warnings raised in the Python program.

但是,这样做:

PYTHONWARNINGS="ignore" openstack image show image name -f value -c id

什么都不做,仍然显示弃用警告。

我已经尝试将 PYTHONWARNINGS 设置为各种设置:

但其中 none 似乎无所不能。

我可以通过在末尾附加 2>/dev/null 来解决这个问题,但我想知道为什么 PYTHONWARNINGS 似乎什么也没做。

PYTHONWARNINGS 当然会抑制 python 的警告。试试 运行:

PYTHONWARNINGS="ignore" python -c "import warnings; warnings.warn('hi')"

但在这种情况下你不是在调用python,而是openstack,它显然没有继承相同的环境。如果不查看源代码,我无法说出原因。它甚至可以明确设置警告级别,这将覆盖您之前所做的任何操作。

如果您不想看到错误,将 STDERR 发送到 /dev/null 是正确的方法。

您可能需要“导出 PYTHONWARNINGS”,以便它可用于任何 openstack 调用