cython的python的区别就在于,在cython里你也要对变量指定类型
我们知道python中是不需要对变量指定类型的,程序会自己判断,这也导致了python的运行慢
Python
x = 5C/C++
int x = 5Cython
cdef int x = 5 或 cpdef int x = 5将python代码用cython编译
例如我们现在有python代码hxx_try.py
def hxx_test(x): y = 0 for i in range(x): y += i return y
首先,将hxx_try.py修改后缀名为hxx_try.pyx, 然后新建setup.py
setup.py
from setuptools import setup from Cython.Build import cythonize setup( name = 'hxx_learn_cython', ext_modules = cythonize("hxx_try.pyx"), zip_safe = False, )zip_safe=False要带着
然后
python setup.py build_ext --inplace
新生成.c文件,.so文件和build目录
目录结构是
此时,新建一个python文件
from hxx_try import hxx_test print(hxx_test(10))就可以执行了
实际发挥作用的是hxx_try.cpython-38-x86_64-linux-gnu.so这个文件。将其他文件包括hxx_try.pyx删除,程序仍然可以执行
但是目前这个代码还没有被很优化,因为我们程序中并没有做任何的cython typing,即cython类型定义
Cython的使用(一)(.so文件)
于 2022-06-09 23:12:24 首次发布
本文介绍了如何利用Cython提升Python代码的运行速度。Cython允许为变量指定类型,从而获得接近C语言的性能。通过修改Python文件后缀为.pyx并创建setup.py文件,然后运行`python setup.py build_ext --inplace`,可以生成编译后的C文件和动态链接库。尽管原始Python代码未进行类型优化,但依然可以通过Cython编译后的.so文件执行。了解Cython的类型定义和编译过程,能有效优化Python项目。







2053

被折叠的 条评论
为什么被折叠?



