Linux下用Python调用C模块
2017-10-13 11:02
295 查看
http://blog.chinaunix.net/uid-22920230-id-3418876.html
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:
(1)编写C代码,helloWorld.c代码很简单,只是输出“Hello World!”提示:这里定义的函数为test(),所以在后面main.py中最后一行为so.test()。
(2)将编写的C代码编译成动态链接库的形式,具体命令:
此时在当前目录下就生成了libhello.so 的动态链接库:
(3)在main.py中导入动态链接库,并调用C函数
这里的ctypes是Python的一个外部库,提供和C语言兼容的数据类型,以方便的调用C编译的静态库和动态库中的函数, 在此可以很肯定的说,ctypes中可定对C的数据类型进行了转换,使用时只需import ctypes ,然后导入动态库即可。
(4)在终端下输入Python main.py, 运行结果:
打印出helloWorld.c中的内容, 说明Python调用C模块成功!
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:
(1)编写C代码,helloWorld.c代码很简单,只是输出“Hello World!”提示:这里定义的函数为test(),所以在后面main.py中最后一行为so.test()。
(2)将编写的C代码编译成动态链接库的形式,具体命令:
此时在当前目录下就生成了libhello.so 的动态链接库:
(3)在main.py中导入动态链接库,并调用C函数
这里的ctypes是Python的一个外部库,提供和C语言兼容的数据类型,以方便的调用C编译的静态库和动态库中的函数, 在此可以很肯定的说,ctypes中可定对C的数据类型进行了转换,使用时只需import ctypes ,然后导入动态库即可。
(4)在终端下输入Python main.py, 运行结果:
打印出helloWorld.c中的内容, 说明Python调用C模块成功!
相关文章推荐
- linux 下Python调用C模块
- linux 下C调用Python 模块
- linux 下C调用Python 模块
- linux 下C调用Python 模块
- linux 下C调用Python 模块
- linux下python 模块调用
- python调用pam模块进行linux用户验证
- linux下python调用c模块
- linux 下Python调用C模块
- linux 下C调用Python 模块
- linux 下C调用Python 模块
- linux 下Python调用C模块
- Python安装MySQLdb模块(Linux)
- Python下调用Linux的命令
- QT/C++ 下调用python自定义模块
- python下面通过ctypes模块调用c++库的方法
- python远程调用rpc模块xmlrpclib
- Windows/Linux平台下安装 python 模块包
- python学习(1):__name__变量在模块调用时所起的作用
- NAO机器人系统下模块生成和python模块调用