python与c 交互原理_PYTHON 与C相互交互调用实例解析
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相互交互调用实例解析相关推荐
- python排序算法的时间复杂度_Python算法的时间复杂度和空间复杂度(实例解析)
算法复杂度分为时间复杂度和空间复杂度. 其作用: 时间复杂度是指执行算法所需要的计算工作量: 而空间复杂度是指执行这个算法所需要的内存空间. (算法的复杂性体现在运行该算法时的计算机所需资源的多少上, ...
- python私有方法应用场景_Python私有属性私有方法应用实例解析
01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 ...
- python列表的实现原理_Python列表对象实现原理
Python 列表对象实现原理 Python 中的列表基于 PyListObject 实现,列表支持元 素的插入.删除.更新操作,因此 PyListObject 是一个变长 对象(列表的长度随着元素的 ...
- python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)
通过前面的学习,我们了解了 Pyton 并发编程的特性以及什么是多线程编程.其实除此之外,Python 多线程还有一个很重要的知识点,就是本节要讲的 GIL. GIL,中文译为全局解释器锁.在讲解 G ...
- python能和c语音交互吗_Python和C语言交互--ctypes,struct
python和c语言进行数据交互,涉及类型转换,字节对齐,字节序大小端转换等.相关模块ctypes,struct,memoryview. 一.ctypes:python和c语言使用结构体数据进行交互 ...
- python pandas series加速原理_python pandas中对Series数据进行轴向连接的实例
有时候我们想要的数据合并结果是数据的轴向连接,在pandas中这可以通过concat来实现.操作的对象通常是Series. Ipython中的交互代码如下: In [17]: from pandas ...
- python json转换字典_Python json转字典字符方法实例解析
josn基本操作 1.导入import json 2.字典转json:json.dumps(dict,ensure_ascii=False),加,ensure_ascii=False转换之后无中文乱码 ...
- python中set函数_python中set()函数简介及实例解析
set函数也是python内置函数的其中一个,属于比较基础的函数.其具体介绍和使用方法,下面进行介绍. set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并 ...
- python画猴子_Python猴子补丁Monkey Patch用法实例解析
属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...
最新文章
- 实对称矩阵的性质_浅谈矩阵的相似对角化(一)
- 【二叉树详解】二叉树的创建、遍历、查找以及删除等-数据结构05
- 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
- 基于supermap webgl三维楼层显隐控制思路
- 新增字段属性“是否转义”,提高列表展示性能
- python爬取公众号,用最简单的方式爬虫
- 算法题:括号匹配(小中大括号序列)
- 严加监管是否能解决超载问题
- 从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
- 图像特征提取之Haar特征
- 用JS判断浏览器是否是IE9以下,处理可能遇到的兼容性问题,或者给出浏览器版本过低的升级提醒。
- 购物网站的商品推荐算法有哪些?
- [LOJ575]不等关系
- Kubernetes全栈架构师(资源调度下)--学习笔记
- [Extensive Reading]background modeling:MOG2
- vulnhub之sherlock
- HEX eiditor的安装教程(windows版本)
- geogebra android,GeoGebra几何
- 「订阅号助手」App发布:手机编辑微信公众号消息,更方便!
- 蓝河科技10个月创立3.05亿美元的农业机器人公司
热门文章
- 将windbg设置为默认调试器命令
- 框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解)
- Cesium基础使用介绍
- UVA103 dp基础题,DAG模型
- [NOIP2011]聪明的质检员
- [转]上海新东方vs新东方,SEO实战
- [转载] python字典查询功能_Python中的字典功能
- 项目案例模板之登录注册的实现
- 从后台获取的数据渲染到页面中的dom操作
- Eclipse------新建文件时没有JSP File解决方法