c调用python脚本如何获取结果_从C调用Python脚本并使用其输出

这是一个从C应用程序中嵌入python模块执行的解决方案.它并不比通过系统调用分支/执行你的python脚本更好或更差,它只是一种不同的方式.是否最佳取决于您的背景和用法.

前段时间我编写了一种将python模块作为插件加载到C应用程序的方法,这里是interesting part.

基本上,你需要#include< Python.h>,然后Py_Initialize()来启动你的python解释器.

然后使用:PyRun_SimpleString(“import sys”);导入sys,你可以通过执行PyRun_SimpleString(‘sys.path.append(“path / to / my / module /”)’)加载你的插件.

要在C和Python之间交换值,事情会变得更难,你必须将所有C对象转换为python对象(在我的脚本中从第69行开始).

然后,您可以使用PyObject_Call_Object(…)调用您的函数,使用您创建的所有python对象作为参数.

您将获得返回值,并转换C对象中的所有值.并且不要忘记所有内存管理!

要结束python解释器,只需调用Py_Finalize()即可.

它看起来确实比它真的更难,但你必须非常小心这样做,因为它可能导致泄漏,安全问题等.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值