gpt4 book ai didi

Python 警告被视为错误,无法禁用

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:50 25 4
gpt4 key购买 nike

我在 python 中遇到一个奇怪的警告问题。我正在使用一个包含许多模块的大型代码库,我无法创建一个重现此问题的小脚本,抱歉没有最小示例。每当出现警告时,程序就将其视为错误并退出。这不是针对特定类型的警告,它似乎是针对所有警告(至少是 RuntimeWarning、PendingDeprecationWarning 和 UserWarning)。我无法轻易阻止这些警告,它需要对其他人的工作进行大量修改,而且它们对代码的功能来说不是问题。

以下是我尝试过但没有用的一些方法:

命令行标志-W

检查以确保未设置 $PYTHONWARNINGS

已验证 sys.warnoptions 为空

脚本前言:

import warnings
warnings.filterwarnings("ignore")

我已经在使用日志记录,将日志设置更改为:

logging.basicConfig(level=logging.DEBUG)
logging.captureWarnings(True)

有没有真正的 Python 专家可以提供帮助?

编辑:

我遇到麻烦的罪魁祸首是被零除。正确的行为应该是返回一个 NaN(稍后将转换为零)。出于速度原因,我必须使用 numpy 数组除法,将其分解为一个循环是不可行的。这是我尝试的另外两件事,其中 arr2 包含零:

np.seterr(divide='ignore')
z = np.divide(arr1,arr2)

with np.errstate(divide='ignore'):
z = np.divide(arr1,arr2)

在这两种情况下,我仍然会收到 RuntimeWarning,然后程序会退出。

再次编辑:

我找到了有问题的代码行,但我不明白为什么会导致这个问题:

warnings.simplefilter("ignore",lineno=32)

如果有人能帮我解释一下,那就太好了。

最佳答案

您总是可以尝试用 NaN 替换分母数组中的零,例如:

denom[denom == 0.0] = np.NaN #watch out for float equality here
numer / denom

关于Python 警告被视为错误,无法禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com