将python代码转化为c语⾔代码,提⾼运⾏效率将python代码转化为c语⾔代码,提⾼运⾏效率
⾸先,需要安装cpython库:
pip install cython
安装完成之后,写⼀段简单的代码,例如下⾯这个利⽤递归求斐波那契数列的函数,然后保存为.pyx⽂件:
def fib(n):
return 1 if n ==1 or n == 2 else fib(n - 1) + fib(n - 2)
我将它保存为fib.pyx⽂件
然后再创建⼀个⽂件,⽂件的内容如下:
from setuptools import setupc语言斐波那契数列
from Cython.Build import cythonize
setup(ext_modules=cythonize('fib.pyx'))
我将它重命名为translate.py⽂件。这个⽂件的作⽤是调⽤ Cython 的cythonize函数把 Python 代码转换为 C 代码。
还有⼀个要提醒的地⽅是⾥⾯的⽂件路径,这⾥是将他们放在同⼀个⽬录下。
接下来编译代码:
进⼊命令⾏,cd转⼊那两个⽂件所在的⽂件⽬录,然后输⼊如下指令
python translate.py build_ext --inplace
如果你的命令⾏出现如下错误:
就需要安装visual studio c++ 14.0
安装好了之后继续执⾏上⾯给的命令,就会成功:
成功之后再创建⼀个测试⽂件test.py:
import time
from fib import fib
start = time.time()
result = fib(20)
end = time.time()
print('斐波那契数列第20项为'+ str(result)+'耗时:'+str(end - start)+'秒')
现在我的⽂件⽬录是这样的:
下⾯运⾏test.py⽂件:
斐波那契数列第40项为102334155耗时:5.765635251998901秒
运⾏如下代码耗时为:
import time
def fib(n):
return 1 if n ==1 or n == 2 else fib(n - 1) + fib(n - 2)
start = time.time()
result = fib(40)
end = time.time()
print('斐波那契数列第20项为'+ str(result)+'耗时:'+str(end - start)+'秒')
斐波那契数列第40项为102334155耗时:27.247100830078125秒
另外注意:import只会从后缀为.py/.pyc/.pyo/.so/.pyd的⽂件中导⼊模块
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论