当前位置:  开发笔记 > 编程语言 > 正文

你如何从C代码调用Python代码?

如何解决《你如何从C代码调用Python代码?》经验,为你挑选了2个好方法。

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

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

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



1> Eli Courtwri..:

我推荐这里详述的方法.它首先解释如何执行Python代码的字符串,然后从那里详细说明如何设置Python环境以与C程序交互,从C代码调用Python函数,从C代码处理Python对象等.

编辑:如果你真的想走IPC的路线,那么你会想要使用struct模块或更好的protlib.Python和C进程之间的大多数通信都围绕在套接字或共享内存中来回传递结构.

我建议Command使用字段和代码创建一个结构来表示命令及其参数.不知道更多关于你想完成什么,我不能给更具体的建议,但总的来说,我建议protlib库,因为这是我用C和Python程序之间的通信(声明:我是protlib的作者) .



2> janneb..:

请参阅手册中的相关章节:http : //docs.python.org/extending/

本质上,您必须将python解释器嵌入程序中。

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有