最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python打包神器Nuitka的使用

 更新時(shí)間:2026年03月22日 10:53:31   作者:編程學(xué)習(xí)網(wǎng)  
Nuitka 是一個(gè) Python 編譯器,它可以將 Python 代碼轉(zhuǎn)換成獨(dú)立的可執(zhí)行文件,類(lèi)似于 PyInstaller,本文就來(lái)介紹一下Python打包神器Nuitka的使用,感興趣的可以了解一下

一. pyinstaller和Nuitka使用感受

1.1 使用需求

這次也是由于項(xiàng)目需要,要將python的代碼轉(zhuǎn)成exe的程序,在找了許久后,發(fā)現(xiàn)了2個(gè)都能對(duì)python項(xiàng)目打包的工具——pyintaller和nuitka。

這2個(gè)工具同時(shí)都能滿足項(xiàng)目的需要:

  • 隱藏源碼:這里的pyinstaller是通過(guò)設(shè)置key來(lái)對(duì)源碼進(jìn)行加密的;而nuitka則是將python源碼轉(zhuǎn)成C++(這里得到的是二進(jìn)制的pyd文件,防止了反編譯),然后再編譯成可執(zhí)行文件。
  • 方便移植:用戶使用方便,不用再安裝什么python啊,第三方包之類(lèi)的。

1.2 使用感受

2個(gè)工具使用后的最大的感受就是:

pyinstaller體驗(yàn)很差!

  • 一個(gè)深度學(xué)習(xí)的項(xiàng)目最后轉(zhuǎn)成的exe竟然有近3個(gè)G的大?。╬yinstaller是將整個(gè)運(yùn)行環(huán)境進(jìn)行打包),對(duì),你沒(méi)聽(tīng)錯(cuò),一個(gè)EXE有3個(gè)G!
  • 打包超級(jí)慢,啟動(dòng)超級(jí)慢。

nuitka真香!

  • 同一個(gè)項(xiàng)目,生成的exe只有7M!
  • 打包超級(jí)快(1min以內(nèi)),啟動(dòng)超級(jí)快。

二. Nuitka的安裝及使用

2.1 nuitka的安裝

  • 直接利用pip即可安裝:pip install Nuitka
  • 下載vs2019(MSVS)或者M(jìn)inGW64,反正都是C++的編譯器,隨便下。

2.2 使用過(guò)程

對(duì)于第三方依賴包較多的項(xiàng)目(比如需要import torch,tensorflow,cv2,numpy,pandas,geopy等等)而言,這里最好打包的方式是只將屬于自己的代碼轉(zhuǎn)成C++,不管這些大型的第三方包!

以下是我demo的一個(gè)目錄結(jié)構(gòu)(這里使用了pytq5框架寫(xiě)的界面):

├─utils//源碼1文件夾├─src//源碼2文件夾├─logo.ico//demo的圖標(biāo)└─demo.py//main文件

使用以下命令(調(diào)試)直接生成exe文件:

nuitka --standalone --show-memory --show-progress --nofollow-imports --plugin-enable=qt-plugins --follow-import-to=utils,src --output-dir=out --windows-icon-from-ico=./logo.ico demo.py

這里簡(jiǎn)單介紹下我上面的nuitka的命令:

  • --standalone:方便移植到其他機(jī)器,不用再安裝python
  • --show-memory --show-progress:展示整個(gè)安裝的進(jìn)度過(guò)程
  • --nofollow-imports:不編譯代碼中所有的import,比如keras,numpy之類(lèi)的。
  • --plugin-enable=qt-plugins:我這里用到pyqt5來(lái)做界面的,這里nuitka有其對(duì)應(yīng)的插件。
  • --follow-import-to=utils,src:需要編譯成C++代碼的指定的2個(gè)包含源碼的文件夾,這里用,來(lái)進(jìn)行分隔。
  • --output-dir=out:指定輸出的結(jié)果路徑為out。
  • --windows-icon-from-ico=./logo.ico:指定生成的exe的圖標(biāo)為logo.ico這個(gè)圖標(biāo),這里推薦一個(gè)將圖片轉(zhuǎn)成ico格式文件的網(wǎng)站(比特蟲(chóng))。
  • --windows-disable-console:運(yùn)行exe取消彈框。這里沒(méi)有放上去是因?yàn)槲覀冞€需要調(diào)試,可能哪里還有問(wèn)題之類(lèi)的。

經(jīng)過(guò)1min的編譯之后,你就能在你的目錄下看到:

├─utils//源碼1文件夾├─src//源碼2文件夾├─out//生成的exe文件夾
    ├─demo.build 
    └─demo.dist
└─demo.exe//生成的exe文件├─logo.ico//demo的圖標(biāo)└─demo.py//main文件

當(dāng)然這里你會(huì)發(fā)現(xiàn)真正運(yùn)行exe的時(shí)候,會(huì)報(bào)錯(cuò):no module named torch,cv2,tensorflow等等這些沒(méi)有轉(zhuǎn)成C++的第三方包。

這里需要找到這些包(我的是在software\python3.7\Lib\site-packages下)復(fù)制(比如numpy,cv2這個(gè)文件夾)到demo.dist路徑下。

至此,exe能完美運(yùn)行啦!

到此這篇關(guān)于Python打包神器Nuitka的使用的文章就介紹到這了,更多相關(guān)Python打包神器Nuitka內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

鄱阳县| 镇江市| 阳西县| 阿合奇县| 通州区| 临夏县| 来宾市| 二连浩特市| 思南县| 中阳县| 绥阳县| 隆子县| 云龙县| 海原县| 林州市| 平南县| 珠海市| 开阳县| 黔江区| 新建县| 华安县| 金平| 巢湖市| 富锦市| 宣化县| 赤峰市| 三穗县| 衡山县| 定州市| 大理市| 长乐市| 千阳县| 靖安县| 攀枝花市| 获嘉县| 探索| 章丘市| 买车| 古浪县| 应用必备| 新田县|