1

我导入到我的 python 项目中的模块之一在 Pychecker 下触发了很多警告。修复这个外部模块并不是一个真正的选择,所以我想告诉 Pychecker 忽略它。

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

谢谢,山姆

编辑:不幸的是,我不能用“pychecker”标记它,因为该标记还不存在,而且我的代表太低而无法创建。

编辑 2额外的问题:pychecker 是否检查被忽略的模块,只是不打印它找到的任何东西?还是通过忽略某些模块来加快速度?

4

3 回答 3

1

I've found another option - you can blacklist using the -b flag. Eg

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

I'm not sure, but I think this checks the imported modules anyway, but just doesn't print the warnings. It certainly doesn't seem any faster with the -b flag than without - though at least the warnings are gone :-)

于 2010-09-17T15:42:23.717 回答
1

关于奖金额外问题:

  • pychecker 总是导入你传递给它的文件,这会导致它导入任何导入的文件。这就像 Python。这是 pychecker 的第一步。
  • 然后pychecker实际上会遍历加载的模块,反汇编代码,并运行所有的操作码。这是第二遍。
  • 在这两种情况下,它都会跟踪所有被忽略的模块生成的警告。然后它会在显示之前过滤掉这些警告。

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

于 2011-01-24T13:20:45.173 回答
1

根据文档

如果你想抑制模块/函数/类/方法的警告,你可以在 .pycheckrc 中定义一个抑制字典。键的示例有:“module”、“module.function”、“module.class”、“module.class.method”等。

IOW,在您的.pycheckrc中,如果麻烦的模块被命名foobar,您将拥有

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

...意味着,您想要的所有抑制选项。用于pychecker -h获取所有选项的列表;我认为'limit=0'会按照您的要求进行(最多显示该模块的 0 个警告,即没有;-),但您可能希望更具选择性(毕竟您只需编写一次即可all in .pycheckrc,而不是在你打电话的每个地方pychecker......这是 pycheckrc 方法的便利!)。

于 2010-09-17T15:17:21.020 回答