使用了Numpy的Cython程序编译错误解决方案
Posted on 13 Nov 2014 PythonCythonNumpyCompile 添加评论
这是个老问题了,典型的错误提示信息是
fatal error: numpy/arrayobject.h: No such file or directory...compilation terminated error
。 为了避免每次都去翻笔记共享到这里,也方便遇到同样问题的同学解决。原帖在这里
解决方案中Robert Kern提到:
In your `setup.py`, the Extension should have the argument `include_dirs=[numpy.get_include()]`.
Also, you are missing `np.import_array()` in your code.
--
Example setup.py:
from distutils.core import setup, Extension
from Cython.Build import cythonize
import numpy
setup(
ext_modules=[
Extension("my_module", ["my_module.c"],
include_dirs=[numpy.get_include()]),
],
)
# Or, if you use cythonize() to make the ext_modules list,
# include_dirs can be passed to setup()
setup(
ext_modules=cythonize("my_module.pyx"),
include_dirs=[numpy.get_include()]
)
解决方法就是往include_dirs
添加numpy.get_include()
。