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

7 c python numpy cython

我遇到了这里描述的问题(这个import_umath函数是什么?)并且想知道它是否有修复?我有完全相同的情况编译使用numpy与以下代码的Cython代码:

import numpy as np
cimport numpy as np
np.import_array()
Run Code Online (Sandbox Code Playgroud)

生成许多​​关于_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]
Run Code Online (Sandbox Code Playgroud)

删除np.import_array()不会改变结果.就像上面帖子中建议的一个海报一样,我尝试在我的.pxd/.pyx文件中添加这个:

cdef extern from *:
    import_umath()
Run Code Online (Sandbox Code Playgroud)

这也没有区别.如何消除这种警告?

Jis*_*hnu 6

extra_compile_args您可以使用 .c文件中的关键字将参数传递给 C 编译器setup.py。例如,这不会生成警告:

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),
)
Run Code Online (Sandbox Code Playgroud)


Sau*_*tro 1

Cython 技巧和提示中,他们解释说您需要:

cdef extern from *:
    pass
Run Code Online (Sandbox Code Playgroud)

当您导入外部包时。我已经需要这个技巧来编写包装器,也许它也适合你......