linux 下Python调用C模块
2015-12-24 18:18
309 查看
http://blog.chinaunix.net/uid-22920230-id-3418876.html
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:
(1)编写C代码,helloWorld.c代码很简单,只是输出“Hello World!”:
(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!”:
(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常用命令总结
- 远程连接Linux下MySQL失败,设置My…
- selinux
- System.in.read()在Linux无法阻塞的问题
- Centos6.5中 一键安装LNMP 安装Yii2.0 手工配置
- linux 去除重复行 uniq
- I.MX6 Linux mipi配置数据合成
- Linux常用命令以及快捷键
- linux下ElasticSearch(es)安装使用部署
- 基于Android的Linux内核的电源管理:Early Suspend
- 基于Android的Linux内核的电源管理:概述
- Linux ---算术运算
- centos下安装架设thinkphp3.2.3(windows去访问局域网中的centos中的站点)
- Linux---vim编辑器
- linux压缩包相关
- CentOS6.4下Mysql数据库的安装与配置
- Linux命令:cd
- CentOS7.2安装MySQL 5.7.10
- linux下vim命令模式下的常用操作
- Centos下安装samba