一.配置环境
python 本身不能运行 cpython 的语法,需要 编译 后引用
需要 gcc 编译器 和 cython 编译器
gcc编译器 把 c语言 编译成扩展模块
Cython 编译器是一种源到源的编译器 python 语法编译成 c语法
1.安装gcc 编译器
gcc 编译器可以下载 Visual Studio 或者 MinGW
MinGW-w64官方网站首页(http://mingw-w64.org/)
 # 0.29.14
二.编译运行
创建 cython文件 fib.pyx
def fib(n):
"""这是一个扩展模块"""
cdef int i
cdef double a=0.0, b=1.0
for i in range(n):
a, b = a + b, a
return a
创建 setup.py 文件编译 cython
from distutils.core import setup
from Cython.Build import cythonize
# 我们说构建扩展模块的过程分为两步:
# 1)将 Cython 代码翻译成 C 代码;
# 2)根据 C 代码生成扩展模块
# 第一步要由 Cython 编译器完成, 通过 cythonize;
# 第二步要由 distutils 完成, 通过 distutils.core 下的 setup
setup(ext_modules=cythonize("Z:\\code\\sj\\python\\dev\\codecython\\test.pyx", language_level=3))
# 里面还有一个参数 language_level=3
# 表示只需要兼容 Python3 即可,而默认是 2 和 3 都兼容
# 如果你是 Python3 环境,那么建议加上这个参数
# cythonize 负责将 Cython 代码转成 C 代码
# 然后 setup 根据 C 代码生成扩展模块
然后编译
python setup.py build
成功 执行完命令之后,当前目录会多出一个 build 目录,里面的结构如图所示。重点是那个 fib.cp38-win_amd64.pyd 文件
如果出现
则重新下载 build tools
三.引用
import fib
# 我们看到该 pyd 文件直接就被导入了
# 至于中间的 cp38-win_amd64 指的是解释器版本、操作系统等信息
print(fib)
参考资料
编译并运行 Cython 代码的几种方式
MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本