Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在numba中与cffi void指针交互_Python_Numba_Cffi - Fatal编程技术网

Python 如何在numba中与cffi void指针交互

Python 如何在numba中与cffi void指针交互,python,numba,cffi,Python,Numba,Cffi,我有一个C库,它与CFFI接口,定义如下: 导入cffi ffi=cffi.ffi() ffi.cdef(“”) 类型定义结构zkdtree zkdtree; 类型定义结构zkdtree_结果zkdtree_结果; zkdtree*zkdtree_加载(常量字符*文件名,字符**错误); void zkdtree_delete(zkdtree*); 尺寸zkdtree特征(zkdtree*); 双zkdtree_插值(zkdtree*,双*pt); zkdtree_结果*zkdtree_结果_分

我有一个C库,它与CFFI接口,定义如下:

导入cffi
ffi=cffi.ffi()
ffi.cdef(“”)
类型定义结构zkdtree zkdtree;
类型定义结构zkdtree_结果zkdtree_结果;
zkdtree*zkdtree_加载(常量字符*文件名,字符**错误);
void zkdtree_delete(zkdtree*);
尺寸zkdtree特征(zkdtree*);
双zkdtree_插值(zkdtree*,双*pt);
zkdtree_结果*zkdtree_结果_分配(作废);
作废zkdtree_结果_删除(zkdtree_结果*);
无效zkdtree_点_信息(zkdtree*,双*pt,zkdtree_结果*输出);
bool zkdtree_result_interpolable(zkdtree_result*);
双zkdtree_结果_中心值(zkdtree_结果*);
双zkdtree结果方差(zkdtree结果*);
""")
请注意,
zkdtree
之类的内部结构从未被引用

目前,我正在加载一个包含相应符号的动态库:

C = ffi.dlopen("libcapi.so")
我希望能够在numba jitted函数中调用这些函数(在nopython模式下),并交换各种匿名结构(比如zkdtree)。我看过模块
numba.cffi_support
,但似乎不知道如何教它理解我的定义

我尝试过各种各样的变化,但都没有成功

tree\u load=C.zkdtree\u load
err=ffi.new('char**')
interp=C.zkdtree\u插值
cffi\u支持注册类型(ffi.typeof(tree),numba.void)
@纳巴恩吉特
def test_one_point():
树=树负载(b“nlo.tree”,错误)
interp(树[0,0,0,0.]))
但我无法使它同时与
tree
err
一起工作。我会犯这样的错误

TypeError: Failed in nopython mode pipeline (step: nopython frontend)
<ctype 'zkdtree'>
TypeError:在nopython模式管道中失败(步骤:nopython前端)