加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

免费pascal中的Python Numpy模块

发布时间:2020-12-20 13:38:28 所属栏目:Python 来源:网络整理
导读:在free pascal中为 Python开发一个模块(.pyd)相当容易,参见 Developing Python Modules with Pascal.但是如果我想与numpy接口,那就不那么容易了. 当使用C与numpy接口时,你必须添加#include numpy / arrayobject.h代码,也调用import_array();在初始化函数中.
在free pascal中为 Python开发一个模块(.pyd)相当容易,参见 Developing Python Modules with Pascal.但是如果我想与numpy接口,那就不那么容易了.
当使用C与numpy接口时,你必须添加#include< numpy / arrayobject.h>代码,也调用import_array();在初始化函数中.

有没有办法在pascal中与numpy接口?

EDIT1

正如@wilberforce回答中的评论中所提到的,头文件中定义的import_array函数只是将multiarray.pyd模块导入当前解释器并进行一些检查.它很容易翻译成pascal,它的工作原理.

numpy C-API函数最初不存在于pythonXX.dll中,因此无法静态链接.使用multiarray.pyd进行静态或动态链接对我来说不起作用.

所以更新的问题是:有没有办法从不是C的代码访问multiarray.pyd中嵌入的C-API函数?

解决方法

从Pascal的角度来看,像任何其他C库一样处理numpy库 – 你需要包含头文件并将import_array声明为外部cdecl函数.

This guide涵盖了细节.

您已经需要完成其中一些操作才能编写Python扩展模块,因此您的Pascal代码可以使用Python API函数与Python对象进行交互.你可以在cdecl中看到这个;外部PythonLib;您链接到的示例中的修饰符.当你这样做时,这可能并不清楚.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读