当前从 Python 调用 C/C++ 代码的有多少种方法、最佳方案是什么?

当前从 Python 调用 C/C++ 代码的有多少种方法、最佳方案是什么?


在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C++的资料从专业入门到高级教程」,

点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!

我知道有三种,每一种各有优缺点,如果你对C/C++和Python都很熟,至少每个都有三年以上经验,第三种是最好的。

1. C/C++该咋写咋写,然后编译成exe/elf格式的可执行文件,Python利用subprocess调用该可执行文件即可,好处是改动小,不好是至少需要两个进程跑代码,而且C/C++和Python通讯很麻烦。

2. C/C++略微改动下,然后编译成dll/so格式的动态库文件,Python利用ctypes调用该库文件即可,好处一个进程内运行,C/C++侧改动小,不好是Python侧需适配代码比较多。

3. C/C++需要include “python.h”,然后编译成pyd/so格式的动态库文件,Python直接import该pyd/so文件(去掉后缀),好处一个进程内运行,Python侧调用简单,跟调纯Python代码一样,不好是不光对C/C++很熟悉,而且还需要研究过Python解释器源码(C写的),才能完成。18b2907716725fe69a9b75f93a0c60d0.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/418055.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大寒---每年的最后一个节气

# 大寒节气 # 大寒,是二十四节气中的最后一个节气。斗指丑;太阳黄经达300;于每年公历1月20日左右交节。大寒同小寒一样,都是表示天气寒冷程度的节气,大寒是天气寒冷到极致的意思。大寒节气处在三九、四九时段&#xf…

IGBT工作原理

IGBT(绝缘栅双极型晶体管) 在实际应用中最流行和最常见的电子元器件是双极结型晶体管 BJT 和 MOS管。 IGBT实物图电路符号图 你可以把 IGBT 看作 BJT 和 MOS 管的融合体,IGBT具有 BJT 的输入特性和 MOS 管的输出特性。 与 BJT 或 MOS管相比,…

常用排序算法总结(直接插入排序、选择排序、冒泡排序、堆排序、快速排序、希尔排序、归并排序)

目录 一. 直接插入排序 二:选择排序 三:冒泡排序 四.堆排序 五:希尔排序 六:快速排序(递归与非递归) 七.归并排序(递归与非递归) 一. 直接插入排序 🌟排序思路 直接插入排序的基本原理是将一条记录插入到已排好的有序表中,从而得到一个新的、记录…

mp4文件可以转成mp3音频吗

现在是个非常流行刷短视频一个年代,刷短视似乎成了人们休闲娱乐的一种方式,在日常刷短视频过程中,肯定会有很多同学被短视频 bgm 神曲洗脑,比如很多被网红翻唱带火的歌曲,例如其中"不负人间”,就是其中…

【Linux第二课-权限】操作系统、Linux用户、Linux权限、Linux文件类型、粘滞位

目录 操作系统shell外壳为什么有shell外壳shell外壳是什么shell外壳工作原理 Linux用户root用户与非root用户root用户与普通用户的切换普通用户 --> root用户root用户 --> 普通用户普通用户 --> 普通用户对一条指令提升为root权限进行执行 Linux权限Linux中的权限角色…

有关Quick BI中lod_fixed函数中以MAX()作为过滤条件报错

一、Quick BI中的lod_fixed函数 lod_fixed{维度1[,维度2]...:聚合表达式[:过滤条件]} 作用:使用指定维度进行计算而不引用任何其他维度。其中, 维度1[,维度2]...:声明维度,指定聚合表达式要连接到的一个或多个维度。使用逗号分…

WebSocket-黑马好客租房

文章目录 网站中的消息功能如何实现?什么是WebSocket?http与websocket的区别httpwebsocket 浏览器支持情况快速入门创建itcast-websocket工程websocket的相关注解说明实现websocket服务测试编写js客户端 SpringBoot整合WebSocket导入依赖编写WebSocketHa…

『 C++ - STL』map与set的封装 ( 万字 )

文章目录 🎡 map与set介绍🎡 map与set的基础结构🎡 红黑树的再修改🎠节点及树的定义🎠KeyOfValue的使用🎠插入函数🎠析构函数🎠红黑树完整代码(供参考) 🎡 迭代器的实现&…

QWidget: Must construct a QApplication before a QWidget 20:10:25: 程序异常结束。

如果你在Windows上混合并匹配了Release和Debug的dll,则会导致这种情况。我的链接的库是release的版本,也就是qwt.dll,但是点击Qt Creator的运行按钮默认是debug启动,所以报错了,Qt Creator运行按钮里选择release就可以…

SpringMVC搭建环境

idea创建java项目后添加webapp怎么配置 1.首先在main下创建一个普通文件webapp 2. 3.选中你的项目,添加Web 4.修改这两处的路径,修改为你webapp所在的路径 先修改左下角的路径,然后再添加web.xml. 然后再修改右上角的地址,注…

FaFu--练习复盘--2

3、函数练习 3.1、函数表达式(1) 描述 根据以下公式计算数学表达式的值,并将结果作为函数值返回。在main()函数中输入x,调用函数fun(x),并输出fun(x)的值。 输入 输入1行,包含1个double类型的浮点数&…

php array_diff 比较两个数组bug避坑 深入了解

今天实用array_diff出现的异常问题,预想的结果应该是返回 "integral_initiate">"0",实际没有 先看测试代码: $a ["user_name">"测","see_num">0,"integral_initiate&quo…