我正在尝试使用 numpy C api 和 setuptools 编译扩展。代码编译得很好,但是当从 python 运行它时,我得到:
ImportError: ./_pyav.so: undefined symbol: PyArray_SimpleNewFromData
我的 setup.py 看起来大致如下:
import numpy
from setuptools import setup, Extension
...
d=[]
...
d.append(numpy.get_include())
...
Extension("_pyav",sources=["pyav.i","pyav.c"],include_dirs=d,extra_compile_args=c,extra_link_args=l,libraries=lib,swig_opts=s)
显然,链接器没有将 numpy C api 对象包含到生成的 .so 文件中。
我在哪里可以获得“extra_link_args”(例如“-L ..”)和“库”(即链接器开关“-llibraryname”)的内容,以便链接器可以找到它们?
我尝试摆弄 numpy.distutils.*,但没有发现任何东西。
最佳答案
我真傻
我忘记了“#include“numpy/arrayobject.h”。
关于python - 链接 numpy 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39068018/