作风建设提升年活动网站,照片怎么制作视频短片,wordpress变成小程序,泰安做百度推广的公司最近有个python项目要发布#xff0c;遇到了两个问题#xff0c;一是项目在windows下运行有点慢#xff0c;二是python都是脚本直接运行#xff0c;没法保护代码安全。查了一下#xff0c;有人说可以利用Cython#xff0c;把python代码编译成为C来调用。即能提高运行性能…最近有个python项目要发布遇到了两个问题一是项目在windows下运行有点慢二是python都是脚本直接运行没法保护代码安全。查了一下有人说可以利用Cython把python代码编译成为C来调用。即能提高运行性能又能实现对代码加密。我尝试做了一遍果然成功的解决了上面两个问题所以把过程记录下来。我是在windows 11的环境下操作的。 1、先安装Cython。直接执行命令pip install Cython就可以了。我安装的是0.29.20版本 2、然后安装VS可以直接去官网下载。我是从“软件管家”下载的2019版本安装的时候只需要安装“C生成工具”注意不同版本这个名字不太一样只要包含后面两项就可以下面的“MSVCv142 - VS2019 C x64/x86生成工具(v14...”和“Windows 10 SDK(10.0.17763.0)”这两项就行了 3、新建一个目录要处理的py文件放在里面。我这里创建了一个目录叫“TestPath”然后放进去了一个我的python文件名字叫做Demp.py。下面就是py文件的全部内容
def Doing(content):ConArr content.split(,)for c in ConArr:print(c)if __name__ __main__:Doing(A,B,C,A,A,A)执行之后效果如下
A
B
C
A
A
A4、接下来在新创建的目录下新建一个pyx文件把Demo.py文件里面的方法放进去。我这里创建的pyx文件名是fib.pyx下面是pyx文件的全部内容
def Doing(content):ConArr content.split(,)for c in ConArr:print(c)5、然后再创建一个设置用的py文件。我这里创建的设置文件是fib_setup.py下面是设置文件的全部内容
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_extsetup(cmdclass{build_ext:build_ext},ext_modules[Extension(myfib, [fib.pyx])])其中fib.pyx就是第4步创建的pyx文件而myfib就是咱们要生成的C文件名这个文件名要记住后面咱们引用和调用的时候要用到 6、到这里准备工作已经做完了接下来要生成C文件了。从cmd命令行进入到咱们在第3步创建的“TestPath”目录下执行下面命令
python fib_setup.py build_ext --inplace如果执行结果显示“已完成代码的生成”就说明执行成功了 7、最后新写个py程序调用新生成的C文件就可以了。我这里创建了一个Test.py内容如下
import myfibif __name__ __main__:myfib.Doing(A,B,C,A,A,A)其中myfib就是在第5步创建的C文件名调用的时候需要先引用然后再使用其中的方法。执行结果如下
A
B
C
A
A
A可以看到执行结果和直接执行Demp.py是完全一样的 8、至此python转C已经完成。但是还要记得把第4步中创建的pyx文件备份到别处因为现在已经不需要python脚本了。 最后总结完成上面操作后我简单测试了一下可以明显感觉到运行效率有提升但是由于时间问题没有仔细量化改善效果。感觉可能提高了20%左右但是这个数据不严谨。另外针对不同的算法提升效果也不太一样