消除Cython numpy编译警告的方法是什么?

8
我遇到了这里描述的问题(What is this import_umath function?),想知道是否有解决方法?我遇到了与以下代码一致的情况,该代码是用于编译使用numpy的Cython代码:
import numpy as np
cimport numpy as np
np.import_array()

生成了大量有关未使用_import_umath的警告:

/usr/local/lib/python2.7/dist-packages/numpy-1.6.2-py2.7-linux-x86_64.egg/numpy/core/include/numpy/__ufunc_api.h:226:1: warning: ‘_import_umath’ defined but not used [-Wunused-function]

删除np.import_array()不会改变结果。就像上面的帖子中的一位用户建议的那样,我尝试在我的.pxd/.pyx文件中添加以下内容:

cdef extern from *:
    import_umath()

这也没有任何改变。如何消除这些警告?

1
你尝试在编译命令行中禁用特定的警告类了吗? - Ignacio Vazquez-Abrams
@IgnacioVazquez-Abrams:我该如何在 setup.py 中使用 Cython 向 C 编译器传递参数? - user248237
@user248237dfsf,你尝试过下面的方法了吗? - Saullo G. P. Castro
2个回答

6
您可以在setup.py中使用关键字extra_compile_args向C编译器传递参数。例如,这样可以避免生成警告:
from distutils.core import setup
from Cython.Build import cythonize
from distutils.extension import Extension
import numpy

extensions=[
    Extension("abc",
             ["abc.pyx"],
             include_dirs=[numpy.get_include()],
             extra_compile_args=["-w"]
            )
]

setup(
    ext_modules=cythonize(extensions),
)

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接