python - 链接 numpy 扩展

标签 python c numpy linker

我正在尝试使用 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/

相关文章:

用于向量化函数的 Python 和 Numba

python - 狮身人面像 : force rebuild of html, 包括 autodoc

python - 在Python中比较多维数组的行

python - Python 中的截断与下限划分

c - 本地通信 - 127.0.0.1 与 IPC

python - 将对数曲线拟合到数据点并在 numpy 中外推

python - 如何在mac上将C的 bool 值更改为python的 bool 值

c - 右移(除法)-> ROUND TOWARD ZERO

c - 删除字符串中的重复项

python - 如何 pickle numpy 的 Inf 对象?