大家好,欢迎来到IT知识分享网。
什么是Nuitka?
Nuitka是Python的编译器,由Python自举。功能很多,其中之一就是把Python脚本直接编译成可执行文件,此功能与Pyinstaller相似。
Nuitka vs Pyinstaller
众所周知,Pyinstaller的功能就是打包Python脚本成为可执行文件。我比较好奇二者之差异。于是我用同一个脚本分别使用Nuitka和Pyinstaller进行打包,打包后Nuitka的体积略小,且启动速度略快。由于笔者精力有限,就没有进行更多实验,所以不能简单就说Nuitka就是比Pyinstaller要好。
Nuitka能加速Python?
有些情况下不能加速,甚至会减速!尽管开发者生成可以提速200%到300%,但都是理想状态下的测试。实际上,如果在Python代码中大量使用列表等或使用for range循环,编译后的运行速度比直接运行Python脚本还要慢!Github上有使用者用埃拉托斯特尼筛法进行性能对比测试,用Nuitka编译后的Python比Python还要慢,Nuitka开发者也承认此事实。当然Nuitka发展很快,这方面的问题应该都会慢慢解决的。
Nuitka好用吗?
好用,网络上有很多资料,一查就能查到很多。其实,就是各种命令行如何用。本人大概花费1个小时就成功打包了一个自己用Pygame写的游戏。虽然中途遇到一些编译错误,查查资料改一改命令行就成功了,并不是很复杂。
Nuitka注意事项
缺资源文件,缺dll均可以使用命令选项 –include-data-files=A=B 来添加。 其中,A代表打包前文件路径,B代表打包后文件路径(相对位置)。
exe图标可以使用命令选项 –windows-icon-from-ico=A 其中,A代表为exe添加图标的路径。
注意新版Nuitka可以添加版权信息和产品信息了 –copyright=唐老师 –product-version=1.0
成果展示
使用Nuitka打包Pygame小游戏为单个exe大小为8M,这其中还包括字体,音频,图片等资源。
额外福利,什么是Numba?
如果你嫌Python脚本运行速度太慢了,Numba可以帮你提速!本人使用自己写的重力四子棋亲测,使用Numba加速棋面判定输赢的函数后,AI整体性能提升2倍有余。一般情况下只需写个装饰器,就可以让函数甚至是类加速。使用Numba你无需改变Python代码的书写方式。
注意事项
注意Numba可以加速的函数其参数和内部的代码它必须了解,这导致无法随意加速函数,目前可加速函数是有具体规范的。函数参数可以是基本类型,也可以是numpy的array,也可以是Numba的List。函数内部代码亦不能有Numba不认知类型,且让Numba认识自定义类型非常之复杂。真是太遗憾了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/167011.html