2014-03-01 68 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), 
)