下面我们一起来看看关于C程序调用Python脚本的例子,如果你对此有兴趣的希望此教程对各位同学会有所帮助。

代码如下 复制代码

#include

int main(){

PyObject * g_pModule = NULL;

Py_Initialize(); //使用python之前,要调用Py_Initialize();这个函数进行初始化

if (!Py_IsInitialized())

{

printf("init errorn");

return -1;

}

PyRun_SimpleString("import sys");

PyRun_SimpleString("sys.path.append('./')");

g_pModule =PyImport_ImportModule("test");//这里是要调用的文件名,我们这里是当前目录下test.py

if (!g_pModule) {

printf("Cant open python file!n");

return -2;

}

PyObject * test1 = PyObject_GetAttrString(g_pModule,"test1");//这里是要调用的函数名

PyObject *objResult = PyObject_CallFunction(test1,"i,s",2,e);//调用函数

if (!objResult){

printf("invoke function failn");

}

PyObject * test2= PyObject_GetAttrString(g_pModule,"test2");//这里是要调用的函数名

objResult = PyObject_CallFunction(test2,"i",2);//调用函数

char * x = PyString_AsString(objResult);

printf("%sn",x);

Py_Finalize();//调用Py_Finalize,这个跟Py_Initialize相对应的。

}

Python程序test.py

代码如下 复制代码

def test1(s,str):

print s str

return 0

def test2(s):

return s

C程序的编译方法

代码如下 复制代码

#假设我们的python编译的时候安装在/opt/python里,那么我们可以用这样的命令来编译程序

$gcc -I/opt/python/include -L/opt/python/lib/ -lpython2.7 test.c

注意: 这里要求python编译的时候,需要有动态链接库即加上--enable-shared

代码如下 复制代码

./configure --prefix=/opt/python --enable-shared

python脚本编程实例_C程序调用Python脚本的例子相关推荐

  1. python程序实例讲解_python入门编程实例 python入门编程实例解析

    python入门编程实例 python入门编程实例解析 python入门编程实例及解析: 题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十 ...

  2. python多进程编程实例_[python] Python多进程编程技术实例分析

    这篇文章主要介绍了Python多进程编程技术,包括了线程.队列.同步等概念及相关的技巧总结,需要的朋友可以参考下 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧. ...

  3. python基础练习题:棋盘【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:棋盘[难度:1级]: 编写打印N行M列下列规则棋盘的程序: 左上角单元格必须是一个星号(*) 任何细胞接触(左,右,上,下)有星号的小区必须是一个点(.) 任何细胞接触(左,右 ...

  4. python高级练习题:多米诺平铺 - 5×2N局【难度:4级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python高级练习题:多米诺平铺 - 5×2N局[难度:4级]: 请还检查了在[多米诺拼接系列]其他练习题(https://www.codewars.com/collections/5d19554d ...

  5. python进阶练习题:馏分类【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python进阶练习题:馏分类[难度:2级]: 为您提供了类"分数",这两个参数(分子,分母)的骨架. 例: fraction1 =分数(4,5) 分数fraction1 =新分数 ...

  6. python基础练习题:简单有趣#32:创建字谜【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:简单有趣#32:创建字谜[难度:1级]: 任务 现在给你两个字符串S和长度相同的T,由大写英文字母.你的任务是找到获得一些anagram的串T从字符串s需要"更换操作 ...

  7. python基础练习题:Covfefe【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python基础练习题:Covfefe[难度:1级]: Covfefe 你给出的字符串.你必须用'covfefe但替换的单词(S)coverage,如果你没有找到字符串中的单词'coverage,你必 ...

  8. Python基础练习题:杂乱无章的页面列表【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    Python基础练习题:杂乱无章的页面列表[难度:1级]: 你得到了一本古老的书,不幸的是有几页错误的位置,幸运的是你的计算机有一个从"1"到"n"的顺序的每个 ...

  9. python进阶练习题:简单有趣#301:跳绳游戏【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

    python进阶练习题:简单有趣#301:跳绳游戏[难度:2级]: 任务 有些孩子在玩跳绳游戏.儿童跳过绳子在大致相同的速度:每一次秒'.如果孩子跳时失败,他需要整理一下绳子,然后继续.这将需要3 s ...

最新文章

  1. pku 1077 Eight
  2. Java Web-网页基础-HTML基础
  3. 北京小哥在日本召唤出机器飞龙,拿下ICRA 2018最佳无人机论文
  4. SpringBoot整合Jersey2.x实现文件上传API
  5. linux文件名变量,文件名通配符、变量以及管道知识点的总结
  6. 常用UCI数据集链接,mark
  7. Filenet 周报丨2020.01.06-2020.01.19
  8. 糖豆推荐系统第一期开发与评估报告
  9. autojs开发的ip地址查询工具开源代码免费分享
  10. openwrt配置内核,加载air720 4G模块的USB串口设备
  11. 接入网、承载网、核心网是什么,交换机路由器是什么、这个和网络的协议有什么关系呢?
  12. 智力游戏教案c语言代码,幼儿园智力游戏教案有哪些
  13. SQL Server高级编程
  14. 香港一卡通攻略:取款省4倍手续费
  15. 80核处理器_8核处理器+4K屏加持,首发6399元的联想YOGA 27一体机体验怎么样?
  16. Gos —— 开启中断与中断机制详解
  17. 计算机开机按f1,开机要按F1怎么解决?电脑开机不按F1进去系统的方法
  18. 企业微信品牌私域运营案例合集
  19. 毕业设计-基于微信小程序的“掌上实验室” 安全教育与管理系统
  20. 四、项目计划(华为项目管理法-孙科炎读书摘要)

热门文章

  1. 超大超长图片居中显示且放大缩小无影响
  2. 词云第一次实践,参考学校老师讲的一些知识点还有网上大佬的代码实现
  3. python中的PEP是什么?怎么理解?(转)
  4. java字符串 删除指定字符的那些事
  5. MSSQL-字符串分离与列记录合并成一行混合使用
  6. Topcoder SRM 648 (div.2)
  7. hdu1247(Hat’s Words)
  8. linux下mqm添加用户,Linux 下MQ的安装和配置亲测
  9. php 多线程处理redis,redis的多线程
  10. java bag_Java - T---bag - 博客园