如何告诉Pychecker忽略导入的库?

时间:2010-09-17 14:39:46

标签: python pychecker

我导入python项目的其中一个模块在Pychecker下触发了很多警告。修复这个外部模块实际上不是一个选项,所以我想告诉Pychecker忽略它。

有谁知道怎么做?我确信这是可能的,而且可能非常简单,但在谷歌搜索了一段时间之后,我没有找到任何文档或示例。

谢谢, 萨姆

编辑:遗憾的是我不能用'pychecker'标记这个标签,因为那个标签还不存在而且我的代表太低而无法创建。

编辑2 额外的额外问题:无论如何,pychecker是否检查了被忽略的模块,只是不打印它找到的任何内容?或者你忽略了一些模块而获得了一些加速?

3 个答案:

答案 0 :(得分:1)

the docs

  

如果你想抑制警告   模块/功能/类/方法,你可以   在中定义一个抑制字典   .pycheckrc。密钥的示例是:   'module','module.function',   'module.class','module.class.method',   etc.etc。

IOW,在你的.pycheckrc中,如果这个麻烦的模块名为foobar,你就会有

suppressions = {'foobar': '...'}

...表示您想要的所有抑制选项。使用pychecker -h获取所有选项的列表;我认为'limit=0'会做你所要求的(显示该模块的最多0个警告,即没有;-),但你可能想要更有选择性(毕竟你只需要在.pycheckrc中一劳永逸地写这个,而不是在你调用pychecker的每一个地方......这就是pycheckrc方法的便利!)。

答案 1 :(得分:1)

我找到了另一个选项 - 你可以使用-b标志进行黑名单。例如

python pychecker.py -b list,of,modules,to,ignore

我不确定,但我认为无论如何这会检查导入的模块,但只是不打印警告。使用-b标志肯定没有比没有更快 - 尽管至少警告消失了: - )

答案 2 :(得分:1)

关于奖金额外问题:

  • pychecker总是导入你传递它的文件,这导致它导入那些导入的文件。这就像Python一样。这是pychecker的第一次传递。
  • 然后pychecker将实际浏览已加载的模块,反汇编代码并运行所有操作码。这是第二次通过。
  • 在这两种情况下,它都会跟踪由忽略的模块生成的所有警告。然后在显示之前过滤掉这些警告。

我正在考虑是否值得将pychecker更改为甚至根本不查看列入黑名单的模块,或者只允许反汇编一个文件(例如在编辑器中进行集成)。