我正在尝试自学Cython,但在访问numpy时遇到了问题。当我使用'cimport'时,问题似乎就出现了。 例如,导入以下函数时:
cimport numpy
def cy_sum(x):
cdef numpy.ndarray[int, ndim=1] arr = x
cdef int i, s = 0
for i in range(arr.shape[0]):
s += arr[i]
return s
我收到错误:
/Users/Daniel/.pyxbld/temp.macosx-10.6-x86_64-2.7/pyrex/test.c:314:10: fatal error: 'numpy/arrayobject.h' file not found
include "numpy/arrayobject.h"
1 error generated.
非常感谢有关如何解决此问题的任何简单说明!
答案 0 :(得分:11)
好的,正如上面已经指出的那样,之前已经提出了类似的问题。 例如:Make distutils look for numpy header files in the correct place。 我使用带有
行的设置文件让我的代码工作include_dirs = [np.get_include()],
如:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as np
ext = [Extension( "cy_test", sources=["cy_test.pyx"] )]
setup(
name = "testing",
cmdclass={'build_ext' : build_ext},
include_dirs = [np.get_include()],
ext_modules=ext
)
我还没有尝试过使用pyximport,所以我不确定是否需要另外修复。