gpt4 book ai didi

python - 如何从 C 代码调用 Python 代码?

转载 作者:IT老高 更新时间:2023-10-28 21:45:50 26 4
gpt4 key购买 nike

我想用一些新功能扩展一个大型 C 项目,但我真的想用 Python 编写它。基本上,我想从 C 代码中调用 Python 代码。但是,像 SWIG 这样的 Python->C 包装器允许 OPPOSITE,即编写 C 模块并从 Python 调用 C。

我正在考虑一种涉及 IPC 或 RPC 的方法(我不介意有多个进程);也就是说,让我的纯 Python 组件在单独的进程中(在同一台机器上)运行,并让我的 C 项目通过从套接字(或 unix 管道)写入/读取来与其通信。我的 python 组件可以读/写套接字进行通信。这是一个合理的方法吗?有更好的吗?喜欢一些特殊的 RPC 机制?

感谢到目前为止的回答 - 但是,我想专注于基于 IPC 的方法,因为我希望将我的 Python 程序作为我的 C 程序放在一个单独的进程中。我不想嵌入 Python 解释器。谢谢!

最佳答案

我推荐 approaches detailed here .它首先解释如何执行 Python 代码字符串,然后详细介绍如何设置 Python 环境以与 C 程序交互、从 C 代码调用 Python 函数、从 C 代码操作 Python 对象等。

编辑:如果你真的想走IPC的路线,那么你会想要使用the struct module或者更好,protlib . Python 和 C 进程之间的大多数通信都围绕来回传递结构,over a socket或通过shared memory .

我建议创建一个带有字段和代码的 Command 结构来表示命令及其参数。如果不了解您想要完成的工作,我无法给出更具体的建议,但总的来说,我推荐 protlib库,因为它是我用来在 C 和 Python 程序之间进行通信的工具(免责声明:我是 protlib 的作者)。

关于python - 如何从 C 代码调用 Python 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com