我在Python中遇到了一个奇怪的警告问题。我正在使用一个包含很多模块的大型代码库,并且我无法创建一个能够重现此问题的小脚本,对不起,没有最小示例。每当出现警告时,程序将其视为错误并退出。这不是针对特定类型的警告,它似乎是所有的警告(至少RuntimeWarning,PendingDeprecationWarning和UserWarning)。我不能轻易阻止这些警告,它需要对其他人的工作进行大量修改,而且这些对代码的功能来说不是问题。将Python警告视为错误,无法禁用
这里有一些事情我都试过,没有工作:
命令行标志-W
检查,以确保$ PYTHONWARNINGS没有得到设定
已验证sys.warnoptions是空的
前言脚本:
import warnings
warnings.filterwarnings("ignore")
我已经使用记录,改变记录设置来:
logging.basicConfig(level=logging.DEBUG)
logging.captureWarnings(True)
是否有任何真正的蟒蛇大师在那里谁可以帮助?
编辑:
这我无法让周围的罪魁祸首是零的鸿沟。正确的行为应该返回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)
如果任何人都可以帮我解释一下,这将很棒。
这个工作对周围的一个实例得到,感谢您的想法,但不能解决整个问题。现在事情正在打破其他地方... – Lydia