开发Python模块(.pyd)的自由Pascal相当简单,详见用Pascal开发Python模块。但如果要与Numpy接口,则不那么容易。
在使用C来与Numpy接口时,您必须将
是否有办法在Pascal中与Numpy接口?
编辑1
如在@wilberforce答案下的评论中提到的那样,在头文件中定义的
numpy C-API函数最初不会出现在pythonXX.dll中,因此它们不能静态链接。对于我而言,使用multiarray.pyd进行静态或动态链接无效。
因此,更新后的问题是:是否有办法从非C代码访问嵌入在multiarray.pyd中的C-API函数?
在使用C来与Numpy接口时,您必须将
#include <numpy/arrayobject.h>
添加到代码中,并在初始化函数中调用import_array();
。是否有办法在Pascal中与Numpy接口?
编辑1
如在@wilberforce答案下的评论中提到的那样,在头文件中定义的
import_array
函数仅将multiarray.pyd模块导入当前解释器并进行一些检查。它很容易翻译成Pascal并且能够正常工作。numpy C-API函数最初不会出现在pythonXX.dll中,因此它们不能静态链接。对于我而言,使用multiarray.pyd进行静态或动态链接无效。
因此,更新后的问题是:是否有办法从非C代码访问嵌入在multiarray.pyd中的C-API函数?