python - 禁止来自 Cython 的警告

标签 python python-3.x warnings cython suppress-warnings

我使用手动 cythonize *.pyx 文件

cython -3 -Wextra mymodule.pyx

我使用-Wextra选项生成额外的警告,对于清理冗余代码片段很有用。然而,许多形式的警告

warning: mymodule.pyx:123:45: local variable 'x' might be referenced before assignment

是打印出来的,我不喜欢。我理解为什么从编译器的角度来看这并不明显,但在我的特殊情况下,在任何情况下 x 在引用之前都不可能被赋值。

因此,我想继续使用 -Wextra 但过滤掉这种类型的警告,类似于 gcc 的 -Wno 选项。然而我一直没能找到这样的功能。

最佳答案

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

关于python - 禁止来自 Cython 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48384054/

相关文章:

python - coinbase-api python 库入门

python - Django如何关闭警告

java - checkstyle getSQLTypeName

python - C 中是否有类似 python 的 inspect 的库?

Python:尝试将 "{}.replace()"与 .format() 一起使用

python - 带 OpenGL 的 Alpha 蒙版

python-3.x - 为什么 NMSboxes 没有消除多个边界框?

python - django.core 序列化器和 Django Rest Framework 序列化器之间的区别

python - 我试图在 python 上解决以下问题,我得到了正确的输出,但它们仍然显示错误

php - '警告:mysql_fetch_array()期望参数1为资源,