我使用
手动对*.pyx
文件进行cython化
cython -3 -Wextra mymodule.pyx
我使用-Wextra
选项生成其他警告,这对于清理冗余代码段非常有用。但是,形式的许多警告
warning: mymodule.pyx:123:45: local variable 'x' might be referenced before assignment
是打印的,我不在乎。我理解为什么从编译器的角度来看它并不明显,但在任何情况下都不可能在我的特定情况下在引用之前不分配x
。
我希望继续使用-Wextra
但过滤掉这种类型的警告,类似于gcc的-Wno
选项。然而,我无法追踪到这样的功能。
答案 0 :(得分:2)
cython中的警告是通过编译器指令控制的;它们目前似乎只是部分documented,但您可以在Cython source中看到完整列表。
在这种情况下,您希望warn.maybe_uninitialized
传递给--directive
选项。
$ cython test.pyx -Wextra
warning: test.pyx:7:12: local variable 'x' might be referenced before assignment
$ cython test.pyx -Wextra --directive warn.maybe_uninitialized=False
# no warning