2017-10-10 102 views
0

要包括C擴展,建立我的回購協議setup.py看起來像:setup.py找不到numpy的頭

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

在我的系統上,頭文件位於/usr/local/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h,所以解決方法是改爲include_dirs=[os.path.join(np.get_include(), 'numpy')]

+0

或者,在C文件中指定'#include「numpy/arrayobject.h」' – BoltzmannBrain