要包含C扩展,构建我的repo的setup.py如下所示:
import numpy as np
from setuptools import setup, Extension
setup(
ext_modules=[
Extension("my_module",
sources=["my_module.cc"],
include_dirs=[np.get_include()]),
],
)
但是尽管包含了numpy标头的路径,但运行python setup.py install
会导致错误fatal error: 'arrayobject.h' file not found
,因为my_module.cc有#include <arrayobject.h>
。
我已经经历了数十个相关的SO和GitHub问题,所有这些都表明我已经实施的include_dirs=[np.get_include()]
解决方法。 numpy路径是/usr/local/lib/python2.7/site-packages/numpy/core/include/
,是的,我确认标题确实存在。
有什么建议吗?
答案 0 :(得分:0)
在我的系统上,头文件位于/usr/local/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h
,因此解决方案是执行include_dirs=[os.path.join(np.get_include(), 'numpy')]
。