引言
Nuitka
是用Python編寫的優(yōu)化Python編譯器,它可以創(chuàng)建運(yùn)行時(shí)不需要單獨(dú)安裝程序的可執(zhí)行文件。簡(jiǎn)單易使用,與Python2(2.6、2.7)和Python3(3.3-3.10)完全兼容,適用于Windows、macOS、Linux等平臺(tái)。
安裝:pip install -U nuitka +
還需要C++的編譯器,詳情可以看文檔的Requirements部分
官方文檔:https://www.nuitka.net/doc/user-manual.html
- 以python MP4視頻轉(zhuǎn)GIF動(dòng)圖這篇博客的程序?yàn)槔?,展?code>Nuitka的用法。并與
pyinstaller
進(jìn)行對(duì)比。
一、參數(shù)詳解
打包命令:nuitka xxx.py
,其主要參數(shù)如下:
- --help 查看所有參數(shù)。
- --standalone 輸出一個(gè)文件夾,包含可執(zhí)行文件和依賴庫(kù),無(wú)需Pyhon環(huán)境即可運(yùn)行。
- --onefile 打包成一個(gè)文件,而不是一個(gè)文件夾。
- --nofollow-imports 不編譯任何導(dǎo)入的模塊,覆蓋所有其他包含選項(xiàng),并且不適用于standalone模式。
- --disable-console 禁用控制臺(tái)窗口并創(chuàng)建GUI應(yīng)用程序 (默認(rèn)關(guān)閉)。
- --output-filename=FILENAME 輸出文件名稱。
-
--enable-plugin=pyqt5 包含Qt插件,可使用
--plugin-list
查詢。 - 查詢所有插件
nuitka --plugin-list
進(jìn)行使用,對(duì)main.py進(jìn)行打包:
-
nuitka main.py
,需要運(yùn)行cmd腳本配置環(huán)境
再打開exe文件 -
nuitka --standalone --nofollow-imports --enable-plugin=pyqt5 main.py
,不得不說(shuō),真的費(fèi)CPU和時(shí)間,因?yàn)橐染幾g第三方庫(kù)
help顯示 --standalone默認(rèn) “–follow-imports” and “–python-flag=no_site”,應(yīng)該與–nofollow-imports (help也提示不適用于standalone模式)沖突,默認(rèn)還是要編譯所有庫(kù)。 -
nuitka --onefile--nofollow-imports --enable-plugin=pyqt5 --output-filename=MP4_to_GIF main.py
,也是默認(rèn)編譯所有庫(kù),但編譯成的可執(zhí)行文件確實(shí)小了。 -
nuitka --onefile --nofollow-imports --disable-console --enable-plugin=pyqt5 --output-filename=MP4_to_GIF main.py
二、與pyinstaller對(duì)比
參考我的博客:python 打包可執(zhí)行文件-pyinstaller詳解
- 內(nèi)存
pyinstaller
加了很多trick85MB
,nuitka
只有45MB
,比pyinstaller小了一半。nuitka
不用standalone 和 onefile還是很快的,也超級(jí)小,就是需要python環(huán)境。 - 執(zhí)行速度
就可執(zhí)行文件的打開速度,感覺不到有特別大的差距…,打包成單獨(dú)一個(gè)可執(zhí)行文件,都挺慢的。打包成文件夾,都挺快… - 打包速度
pyinstaller
打包速度會(huì)快很多。nuitka
不用–standalone 或者 --onfile也很快,但感覺就像僅僅加了個(gè)腳本用來(lái)運(yùn)行.py一樣…
可能與程序大小有關(guān),以上測(cè)試用的MP4_to_GIF只是個(gè)小程序、文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-804502.html
也可參考:比較PyInstaller和Nuitka文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-804502.html
三、打包總結(jié)
- 使用python寫的小工具,我選擇
pyinstaller
- 大程序我選擇
c++
到了這里,關(guān)于python 打包可執(zhí)行文件-Nuitka詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!