记录一下自己使用Cython的过程和经验.
环境:
- 系统:Windows10/Ubuntu
- python环境:Anaconda
- 编辑器:VSCode
安装Cython
首先介绍Windows系统下的安装.
Cython通过编译python文件来实现加速,因此需要安装编译器,我使用的是MingW.
安装MingW后,安装相关库:
conda install libpython m2w64-toolchain -c msys2
Windows下还需进行编译器配置,进入python安装目录中的\Lib\distutils文件夹,新建distutils.cfg文件,并写入:
[build] compiler=mingw32
最后安装Cython:
conda install cython
至此已经安装完成.
下面介绍Ubuntu系统下的安装.
Linux系统下应该默认安装了gcc编译器,如果没有,则请自行安装.
直接安装Cython即可:
conda install cython
下面来实验一下Cython. 创建Hello.pyx
(注意后缀名为.pyx
),写入:
print("Hello!")
之后我们需要编译此文件,最常用的编译方式为创建setup.py
,写入:
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("hello.pyx")
)
然后在终端中执行:
python .\setup.py build_ext --inplace
这里,Cython官方文档给定的参数
--inplacefrom
无法被识别,不知道是什么原因.
执行后,你的目录下应该多出来两个个文件:hello.c
,hello.cp38-win_amd64.pyd
,以及一个文件夹:build
.(此处编译是在Windows系统下进行,linux系统下编译不会得到.pyd
文件,而是会得到.so
文件.)
之后执行:
import hello
可以看到输出:
Hello!
作为和python库的对比,此时我们更改hello.pyx
的内容为:
print("Hello!It's a test")
保存后,不重新编译,输出结果不变.