python cython 模块(1)

python 是一门动态类型的语音,其开发速度比C,C++等静态语言块, 但是速度慢很多, 而cython 通过混合C和python 的语法,可以提高python代码的运行速度

1) 安装cython 

直接通过pip install cython 安装

2) 测试

cython的源代码文件的后缀名为.pyx, cython会调用gcc编译cython的源代码,所以用cython 写的python 扩展包的setup 方式和纯python 代码的稍有不同;

下面测试一个官方给的例子:

首先新建一个cython 源码文件 hello_world.pyx, 其内容为:

print "hello world!"

在cython的源码文件中, 几乎兼容所有的python代码的书写方式,所以直接用用python 代码打印hello world;

如果我们想要利用hello_world.pyx 构建一个python的hello_world模块,setup.py 的内容如下:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize("hello_world.pyx")
)

然后执行 python setup.py build_ext --inplace

就会看到:

Cythonizing hello_world.pyx
running build_ext
building 'hello_world' extension
creating build
creating build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -I/usr/kerberos/include -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.7 -c hello_world.c -o build/temp.linux-x86_64-2.7/hello_world.o
gcc -pthread -shared -L/usr/kerberos/lib64 build/temp.linux-x86_64-2.7/hello_world.o -L/usr/lib64 -lpython2.7 -o /home/xudl/hello_world.so

调用gcc编译生成一个hello_world.so, 然后在hello_world.so 的当前目录下进入python交互式界面,导入hello_world 模块

import hello_world

就会打印hello world

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值