2019独角兽企业重金招聘Python工程师标准>>>

最近做一个移植项目, 用到C调用Python, 在网上搜了好多资料,但是发现按照上面介绍的一步一步来, 根本行不通,最后还是根据系统报出的错误,进行调试才成功, 所以感觉很有必要做下记录。

      下面以main.c 调用 hellWorld.py 函数为例进行说明。

       helloWorld.py 的内容很简单只是定义了hello函数然后输出“Hello World”

main.c 函数也比较简单,主要是初始化python,以及导入python的模块等

里面的Python_Initialize()主要是初始化python解释器。

      Py_SimpleString("import sys")相当于在python中的import sys语句。

      Py_SimpleString("sys.path.append('./')")是将搜索路径设置为当前目录。

      Py_ImportModule("helloWorld")是利用导入文件函数将helloWorld.py函数导入。

      PyObject_GetAttrString(pModule, "hello")是在pyton引用模块helloWorld.py中查找hello函数。

接着调用PyEval_CallObject(pFunc, NULL)调用hello函数。

      最后是清理python环境释放资源。


     在写好了helloWorld.py和main.c函数后就得写Makefile函数了,Makefile函数代码如下:

     

     

 make后生成main,./main运行结果:

    

结果打印出了helloWorld.py中的数据, 说明C调用Python成功!

转载于:https://my.oschina.net/lcxidian/blog/396423

linux 下C调用Python 模块相关推荐

  1. linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...

    最近想运用linux系统下Qt来实现c++ 与python的混合编程,linux系统会自带python2.7版本或者python3.5版本(深度linux). Qt调用python文件需要在pro文件 ...

  2. Linux下c++调用python程序

    按照上篇windows下调用的在linux下运行命令 其中linux下lib中为libpython3.6m.a,同时include中Python.h在python3.6m目录下,因此需要修改命令和ma ...

  3. linux下java调用python脚本,java - 在Linux Terminal中以编程方式从Java调用python脚本 - 堆栈内存溢出...

    我正在开发一个Java应用程序,用于检查源文件中的补丁程序(是否存在). 用于检测补丁程序更改的核心逻辑位于python脚本[titled'patch.py​​']中,并且我的Java应用程序与此Py ...

  4. linux下调用python脚本,Linux下QT调用Python脚本的解决方案,Qt,python,一种,解决办法

    最近在做一个深度学习对图片中对象识别效果的检测工具,其主要功能就是将自己标注的图片与识别结果图片进行对比然后计算识别的准确等参数,并提供原图与结果图片的显示功能. 脚本主要完成识别与计算功能,QT完成 ...

  5. linux下c 调用python,在Linux下使用python ctypes调用io\u submit

    我正在尝试使用python ctypes调用io帴ubmit. 我写的代码应该可以在32位和64位Intel/AMD体系结构上工作,但这里我将重点放在64位上.在 我定义了以下内容:def PADDE ...

  6. java执行python返回null_[转]java调用python脚本以及通过Process.waitFor()直接调用python模块返回错误代码1的一种解决办法...

    常见的java调用python脚本方式 通过jython提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 通过jython提供的类库实现 通过jython实现的话,我 ...

  7. linux node 命令无效,完美解决linux下node.js全局模块找不到的情况

    今天在在linux上用npm安装了pm2准备部署node项目,结果通过pm2命令启动项目的时候报pm2找不到,这很伤,以为pm2没有安装成功,但是在node安装目录下面的bin文件夹里面调用pm2却没 ...

  8. Linux下动态链接库调用

    Linux下动态链接库调用 2014-11-01 10:39 3人阅读 评论(0) 收藏 编辑 删除 Linux下动态链接库调用 2013-06-08 20:52:48|  分类:集成开发环境相关 | ...

  9. C#调用Python模块

    编程:C#调用Python模块 当下,C#与Python都是比较热门的计算机编程语言,他们各有优缺点,如果能让他们互相配合工作,那是多么美好的事情,今天我来讲解一下如何利用C#来调用Python. 如 ...

最新文章

  1. 【分布式架构】“高并发” -- 详解
  2. linux 优化内存分配,Linux性能优化 第三章 性能工具:系统内存
  3. jmeter插件监控cpu小节点
  4. C语言数组初始化的问题
  5. asterisk1.8 拨号方案 mysql存储(动态)
  6. docker中的hassio升级_趣说Docker
  7. asp access物流基础信息查询平台毕业设计成品
  8. python怎么做情感分析_如何用python进行情感分析
  9. 很好听,可没机会跟你分享
  10. flash builder 序列号
  11. Linux redis常用命令
  12. 奇奇怪怪的three.js特效(一)
  13. Mac版OneNote同步报错E000006B ctctv
  14. 调用百度API实现人脸识别
  15. 【校招Web前端面试干货分享】
  16. Oracle Acs资深顾问罗敏 老罗技术核心感悟:11g的数据压缩技术
  17. 小博老师解析Java核心技术点 ——表单令牌(一)
  18. Tomcatnbsp;Servletnbsp;JSPamp;nbs…
  19. Ubuntu20 设置frp开机自启动
  20. 用计算机术语赞美老师,赞美老师的诗句 形容老师辛苦的诗句

热门文章

  1. linux mysql 1030,MySQL报错ERROR 1030 (HY000): 解决过程
  2. mysql 半同步复制_Mysql半同步复制原理及问题排查
  3. 微型计算机2020年6月上,2020年1-6月全国微型计算机设备产量统计分析
  4. 使用工具类创建一个线程池
  5. Spring-boot-文件上传大小限制
  6. QT信号与槽——观察者模式——回调函数
  7. linux ps -aux 中stat含义:
  8. html点击按钮删除session,Asp.net中安全退出时清空Session或Cookie的实例代码
  9. php网站服务器工具,PHP服务器搭建网站常用工具有哪些?
  10. mysql二级索引_mysql——二级索引(辅助索引)