PYTHON与C相互交互调用实例解析

使用前工具:

Vc++编译器

Python解释器

如没有装VC,可以去微软网站下一个C++的编译器,地址如下:

装完后,在环境变量中把PYTHON的INCLUDE和LIBS分别加入下面2个宏

INCLUDE

LIB

1、C中调用PYTHON

#include

int main(int argc, char *argv[])

{

Py_Initialize();

PyRun_SimpleString("from time import time,ctime\n"

"print 'Today is',ctime(time())\n");

Py_Finalize();

return 0;

}

直接用CL文件名编译就是

2、用C生成DLL,用PYTHON调用

C代码:如FOO.C

#include

/* Define the method table. */

static PyObject *foo_bar(PyObject *self, PyObject *args);

static PyMethodDef FooMethods[] = {

{"bar",foo_bar, METH_VARARGS},

{NULL, NULL}

};

/* Here's the initialization function.We don't need to do anything

for our own needs, but Python needs that method table. */

void initfoo()

{

(void) Py_InitModule("foo", FooMethods);

}

/* Finally, let's do something ... involved ... as an example function. */

static PyObject *foo_bar(PyObject *self, PyObject *args)

{

char *string;

intlen;

if (!PyArg_ParseTuple(args, "s", &string))

return NULL;

len = strlen(string);

return Py_BuildValue("i", len);

}

C定义文件:foo.def

EXPORTS

initfoo

编译生成foo.dll

Cl -c foo.c;

link foo.obj /dll/def:foo.def/OUT:foo.dll

在PYTHON中调用:

Import foo

Dir(foo)

即可以看到结果:

>>> import foo

>>> dir(foo)

['__doc__', '__file__', '__name__', 'bar']

>>> ^Z

python与c 交互原理_PYTHON 与C相互交互调用实例解析相关推荐

  1. python排序算法的时间复杂度_Python算法的时间复杂度和空间复杂度(实例解析)

    算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...

  2. python私有方法应用场景_Python私有属性私有方法应用实例解析

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 ...

  3. python列表的实现原理_Python列表对象实现原理

    Python 列表对象实现原理 Python 中的列表基于 PyListObject 实现,列表支持元 素的插入.删除.更新操作,因此 PyListObject 是一个变长 对象(列表的长度随着元素的 ...

  4. python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)

    通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...

  5. python能和c语音交互吗_Python和C语言交互--ctypes,struct

    python和c语言进行数据交互,涉及类型转换,字节对齐,字节序大小端转换等.相关模块ctypes,struct,memoryview. 一.ctypes:python和c语言使用结构体数据进行交互 ...

  6. python pandas series加速原理_python pandas中对Series数据进行轴向连接的实例

    有时候我们想要的数据合并结果是数据的轴向连接,在pandas中这可以通过concat来实现.操作的对象通常是Series. Ipython中的交互代码如下: In [17]: from pandas ...

  7. python json转换字典_Python json转字典字符方法实例解析

    josn基本操作 1.导入import json 2.字典转json:json.dumps(dict,ensure_ascii=False),加,ensure_ascii=False转换之后无中文乱码 ...

  8. python中set函数_python中set()函数简介及实例解析

    set函数也是python内置函数的其中一个,属于比较基础的函数.其具体介绍和使用方法,下面进行介绍. set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并 ...

  9. python画猴子_Python猴子补丁Monkey Patch用法实例解析

    属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...

最新文章

  1. 实对称矩阵的性质_浅谈矩阵的相似对角化(一)
  2. 【二叉树详解】二叉树的创建、遍历、查找以及删除等-数据结构05
  3. 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
  4. 基于supermap webgl三维楼层显隐控制思路
  5. 新增字段属性“是否转义”,提高列表展示性能
  6. python爬取公众号,用最简单的方式爬虫
  7. 算法题:括号匹配(小中大括号序列)
  8. 严加监管是否能解决超载问题
  9. 从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
  10. 图像特征提取之Haar特征
  11. 用JS判断浏览器是否是IE9以下,处理可能遇到的兼容性问题,或者给出浏览器版本过低的升级提醒。
  12. 购物网站的商品推荐算法有哪些?
  13. [LOJ575]不等关系
  14. Kubernetes全栈架构师(资源调度下)--学习笔记
  15. [Extensive Reading]background modeling:MOG2
  16. vulnhub之sherlock
  17. HEX eiditor的安装教程(windows版本)
  18. geogebra android,GeoGebra几何
  19. 「订阅号助手」App发布:手机编辑微信公众号消息,更方便!
  20. 蓝河科技10个月创立3.05亿美元的农业机器人公司

热门文章

  1. 将windbg设置为默认调试器命令
  2. 框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解)
  3. Cesium基础使用介绍
  4. UVA103 dp基础题,DAG模型
  5. [NOIP2011]聪明的质检员
  6. [转]上海新东方vs新东方,SEO实战
  7. [转载] python字典查询功能_Python中的字典功能
  8. 项目案例模板之登录注册的实现
  9. 从后台获取的数据渲染到页面中的dom操作
  10. Eclipse------新建文件时没有JSP File解决方法