2014-03-01 36 views
6

我遇到了这里描述的问题(What is this import_umath function?),想知道它是否有修复?我有哪里编译代码用Cython与下面的代码使用numpy的完全相同的情况下:消除Cython numpy编译警告的方法?

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

您是否尝试过在编译命令行禁用该特定的警告类? –

+0

@ IgnacioVazquez-Abrams:我如何使用cython从'setup.py'向C编译器传递参数? – user248237dfsf

+0

@ user248237dfsf您是否尝试过下面的方法? –

回答

3

您可以使用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), 
)