【问题标题】:FutureWarning not displayed with warnings.simplefilter(action = "error", category=FutureWarning)FutureWarning 未与 warnings.simplefilter(action = "error", category=FutureWarning) 一起显示
【发布时间】:2021-03-19 07:25:53
【问题描述】:

我无法找到产生 FutureWarning 消息的代码行:元素比较失败。

SO 中还有其他问题描述了导致此警告的 python / numpy 冲突。 我正在尝试在我的代码中查找导致此问题的行。

当我在代码的标题部分中包含这些行时:

import warnings
warnings.simplefilter(action = "default", category=FutureWarning)

然后警告消息显示在控制台输出上,但没有确定问题发生位置的信息。

当我包含这些行时:

import warnings
warnings.simplefilter(action = "error", category=FutureWarning)

则不显示警告信息。

我也用过

warnings.filterwarnings()

与 simplefilter 具有相同的参数,并具有相同的结果。

我正在尝试运行代码并生成一个用于标识违规行的回溯。

我做错了什么?

【问题讨论】:

  • 您能分享您的代码或它的最低版本以进行调试吗?另外,您从哪里运行代码、IDE 或提示符?
  • 对我来说,warnings.simplefilter(action = "error", category=FutureWarning) 按预期工作...确保删除“默认”上的简单过滤器并尝试使用warnings.filterwarnings("always") 以确保它不是与事实相关的问题不是遇到的第一个警告。

标签: python warnings


【解决方案1】:

尝试删除您的警告/过滤警告并添加以下内容:

numpy.seterr(all='raise')

如果符合预期,它将在发生的地方引发异常。

更多信息:

【讨论】:

    【解决方案2】:

    通常,从 cmd 或终端运行代码有助于指示警告/错误,如提示中显示的哪一行代码产生了消息。否则,使用 Ctrl + bSublime Text 构建代码也有助于指出错误所在。

    现在,如果这仍然对您不起作用,手动执行此操作的方法是查找代码中您使用 ==in 的每个部分。这两个运算符,以及here 的解释,都可能导致这种错误。然后你可以在一些命令之前使用with warnings.catch_warnings():,看看你是否找到它。

    然后,如果你发现它并且想忽略它,那就去做

    with warnings.catch_warnings():
        warnings.simplefilter("ignore", category= FutureWarning)
        <<command>>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-11
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 2019-04-19
      • 2018-06-02
      相关资源
      最近更新 更多