一、与Python不同的是,Cython代码需要进行编译。发生两个阶段
- 将一个.pyx文件用Cython编译成一个.c文件中,包括Python扩展模块代码
- 将.c文件使用C编译器编译成.so文件(在windows上是.pyd文件),这个文件可以在Python中直接import使用
二、构建Cython代码的方法
- 写一个distutils/setuptools setup.py(推荐)
- 像使用.py文件一样。使用Pyximport,导入Cython .pyx文件(使用distutils在后台编译和构建)。
- 运行 cython 命令行工具通过.pyx文件生成.c文件,然后手动将.c文件编译为适合python导入的共享库或dll
- 使用Jupyter或Sage,这两个都可以内联Cython代码。
三、使用distutils构建Cython模块
首先编写python脚本(hello.pyx)
def sayHi(name): print('Hi,%s!'%name)
然后编写setup.py脚本
from distutils.core import setup from Cython.Build import cythonize setup(name='Hello world app', ext_modules=cythonize('hello.pyx'))
最后在所在目录中运行命令
python setup.py build_ext --inplace
接下来的使用就和python库一样