Cython的使用(一)

Cython的使用(一),第1张

cython的python的区别就在于,在cython里你也要对变量指定类型

我们知道python中是不需要对变量指定类型的,程序会自己判断,这也导致了python的运行慢

Python

x = 5

C/C++

int x = 5

Cython

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类型定义

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1330307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存