一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python的打包神器——Nuitka

 Yy3318q 2022-01-24

圖片

一. pyinstaller和Nuitka使用感受

1.1 使用需求

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

這2個工具同時都能滿足項目的需要:

  • 隱藏源碼。這里的pyinstaller是通過設(shè)置key來對源碼進(jìn)行加密的;而nuitka則是將python源碼轉(zhuǎn)成C++(這里得到的是二進(jìn)制的pyd文件,防止了反編譯),然后再編譯成可執(zhí)行文件。

  • 方便移植。用戶使用方便,不用再安裝什么python啊,第三方包之類的。

1.2 使用感受

2個工具使用后的最大的感受就是:

  • pyinstaller體驗很差!

    • 一個深度學(xué)習(xí)的項目最后轉(zhuǎn)成的exe竟然有近3個G的大?。?span>pyinstaller是將整個運行環(huán)境進(jìn)行打包),對,你沒聽錯,一個EXE有3個G!

    • 打包超級慢,啟動超級慢。

  • nuitka真香!

    • 同一個項目,生成的exe只有7M!

    • 打包超級快(1min以內(nèi)),啟動超級快。

二. Nuitka的安裝及使用

2.1 nuitka的安裝

  • 直接利用pip即可安裝:pip install Nuitka

  • 下載vs2019(MSVS)或者M(jìn)inGW64,反正都是C++的編譯器,隨便下。

2.2 使用過程

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

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

├─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

這里簡單介紹下我上面的nuitka的命令:

  • --standalone:方便移植到其他機(jī)器,不用再安裝python

  • --show-memory --show-progress:展示整個安裝的進(jìn)度過程

  • --nofollow-imports:不編譯代碼中所有的import,比如keras,numpy之類的。

  • --plugin-enable=qt-plugins:我這里用到pyqt5來做界面的,這里nuitka有其對應(yīng)的插件。

  • --follow-import-to=utils,src:需要編譯成C++代碼的指定的2個包含源碼的文件夾,這里用,來進(jìn)行分隔。

  • --output-dir=out:指定輸出的結(jié)果路徑為out。

  • --windows-icon-from-ico=./logo.ico:指定生成的exe的圖標(biāo)為logo.ico這個圖標(biāo),這里推薦一個將圖片轉(zhuǎn)成ico格式文件的網(wǎng)站(比特蟲)。

  • --windows-disable-console:運行exe取消彈框。這里沒有放上去是因為我們還需要調(diào)試,可能哪里還有問題之類的。

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

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

當(dāng)然這里你會發(fā)現(xiàn)真正運行exe的時候,會報錯:no module named torch,cv2,tensorflow等等這些沒有轉(zhuǎn)成C++的第三方包。

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

至此,exe能完美運行啦!

作者:李小肥

來源:https://www.site

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产亚洲精品俞拍视频福利区| 热久久这里只有精品视频| 美国女大兵激情豪放视频播放| 国产欧美日产久久婷婷| 精品国产亚洲av成人一区| 欧美成人高清在线播放| 国产亚洲欧美一区二区| 国产一区国产二区在线视频| 中文日韩精品视频在线| 激情五月综五月综合网| 少妇熟女亚洲色图av天堂| 色婷婷日本视频在线观看| 国产精品流白浆无遮挡| 欧美精品在线播放一区二区| 精品一区二区三区免费看| 国内胖女人做爰视频有没有| 国产一区二区三区香蕉av| 久久国产精品热爱视频| 久热99中文字幕视频在线 | 男女午夜视频在线观看免费| 爱草草在线观看免费视频| 亚洲乱妇熟女爽的高潮片| 亚洲一区二区精品久久av| 国产老熟女乱子人伦视频| 成人综合网视频在线观看| 久久国产精品熟女一区二区三区 | 91欧美日韩国产在线观看| 成年女人下边潮喷毛片免费| 自拍偷女厕所拍偷区亚洲综合| 亚洲黑人精品一区二区欧美| 好吊日在线观看免费视频| 熟女少妇一区二区三区蜜桃| 人妻熟女中文字幕在线| 91免费一区二区三区| 中文字幕佐山爱一区二区免费| av在线免费播放一区二区| 国内九一激情白浆发布| 91日韩在线视频观看| 日韩欧美三级中文字幕| 中日韩免费一区二区三区| 两性色午夜天堂免费视频|