还可以使用Cython来实现混编
1 下载Cython,用python setup.py install进行安装
2 一个实例
① 创建helloworld目录
创建helloworld.pyx,内容如下:
cdef extern from"stdio.h":
extern int printf(const char *format, ...)
def SayHello():
printf("hello,world\n")
② 编译,最方便的是利用python的Distutils了,
helloworld目录下创建Setup.py,内容如下:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
setup(
name = 'helloworld',
ext_modules=cythonize([
Extension("helloworld", ["helloworld.pyx"]),
]),
)
编译:
python Setup.py build
安装:
python Setup.py install
安装后,会将在build/lib.???目录下生成的helloworld.pyd拷贝到Lib/site-packages
注:
有时我们只是希望测试一下,并不希望安装,这时可以把build/lib.???目录下的helloworld.pyd拷贝到当前目录
或者在importhelloworld前执行脚本:import sys;sys.path.append(pathof helloworld.pyd)
③ 测试:
>>>import helloworld
>>>helloworld.SayHello()
hello,world