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

Python警告被视为错误,无法禁用,python,numpy,warnings,Python,Numpy,Warnings,我在python中遇到了一个奇怪的警告问题。我正在使用一个包含许多模块的大型代码库,我无法创建一个复制此问题的小脚本,很抱歉,这里没有最小示例。每当出现警告时,程序将其视为错误并退出。这不是针对特定类型的警告,而是针对所有类型的警告(至少是RuntimeWarning、PendingDeprecationWarning和UserWarning)。我不能轻易地阻止这些警告,这将需要对其他人的工作进行大量修改,而且它们对代码的功能来说不是问题 以下是我尝试过的一些不起作用的东西: 命令行标志-W 检

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

以下是我尝试过的一些不起作用的东西:

命令行标志-W

检查以确保未设置$PYTHONWARNINGS

已验证sys.warnpoptions为空

序言脚本:

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)

在这两种情况下,我仍然会收到运行时警告,然后程序退出

再次编辑:

我发现了有问题的代码行,但我不明白为什么它会导致此问题:

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

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

你可以尝试用NaN替换分母数组中的零,比如:

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

这对于绕开一个例子是有效的,谢谢你的想法,但并不能解决整个问题。现在事情在别的地方发生了变化。。。
denom[denom == 0.0] = np.NaN #watch out for float equality here
numer / denom