Cython的使用(一)(.so文件)

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值