Python打包神器Nuitka

什么是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认识自定义类型非常之复杂。真是太遗憾了。

展开阅读全文

页面更新:2024-03-12

标签:神器   脚本   图标   路径   函数   注意事项   选项   类型   代码   代表   文件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top