Python调用c/c++函数
来源:互联网 发布:网络调查问卷怎么赚钱 编辑:程序博客网 时间:2024/05/17 03:59
Python开发效率高,运行效率低。而c/c++恰恰相反。因此在python脚本中调用c/c++的库,对python进行扩展,是很有必要的。使用python api,http://www.python.org/doc/,需要安装python-dev。
test.c文件如下
- #include <Python.h>//包含python的头文件
- // 1 c/cpp中的函数
- int my_c_function(const char *arg)
- {
- int n = system(arg);
- return n;
- }
- // 2 python 包装
- static PyObject * wrap_my_c_fun(PyObject *self, PyObject *args)
- {
- const char * command;
- int n;
- if (!PyArg_ParseTuple(args, "s", &command))//这句是把python的变量args转换成c的变量command
- return NULL;
- n = my_c_function(command);//调用c的函数
- return Py_BuildValue("i", n);//把c的返回值n转换成python的对象
- }
- // 3 方法列表
- static PyMethodDef MyCppMethods[] = {
- //MyCppFun1是python中注册的函数名,wrap_my_c_fun是函数指针
- {"MyCppFun1", wrap_my_c_fun, METH_VARARGS, "Execute a shell command."},
- {NULL, NULL, 0, NULL}
- };
- // 4 模块初始化方法
- PyMODINIT_FUNC initMyCppModule(void)
- {
- //初始模块,把MyCppMethods初始到MyCppModule中
- PyObject *m = Py_InitModule("MyCppModule", MyCppMethods);
- if (m == NULL) return;
- }
test.py文件如下
- import MyCppModule//导入python的模块(也就是c的模块,注意so文件名是MyCppModule
- r = MyCppModule.MyCppFun1("ls -l")//调用
- print r
- print "OK"
- Python 调用 C函数
- python 调用 c 函数
- Python调用c/c++函数
- Python调用C语言函数
- Python调用C语言函数
- Python调用C语言函数
- Python调用C语言函数
- Python调用C/C++函数
- C调用Python的函数
- Python调用C语言函数
- 001.python调用C函数
- Python调用 c 的函数
- C语言调用Python函数
- C调用Python的函数
- python调用c中函数
- Python调用C/C++函数
- 用Python调用C++/C函数
- c和python混编,c调用python模块中的函数
- 正则匹配
- C语言调用Python模块(Ubuntu Linux)
- 存储过程实现sybase分页
- 用C语言扩展Python的功能
- C/C++将内容写入外部文件
- Python调用c/c++函数
- c++和Python互操作高级应用
- 非常好网站,介绍各种文件内结构;
- C++调用Python
- 如何登录局域网中自己主机的硬盘分区?
- 如何才能做好一个项目经理?
- 函数调用方式--__thiscall调用方式和__cdecl,__stdcall有什么区别
- 什么样的“80后”容易成为管理者?
- 一个睡五分钟等于六个钟头的方法