91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python打包神器Nuitka怎么使用

發布時間:2023-04-13 11:31:48 來源:億速云 閱讀:227 作者:iii 欄目:編程語言

這篇文章主要講解了“Python打包神器Nuitka怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python打包神器Nuitka怎么使用”吧!

一. pyinstaller和Nuitka使用感受

1.1 使用需求

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

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

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

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

1.2 使用感受

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

  • pyinstaller體驗很差!

  • 一個深度學習的項目最后轉成的exe竟然有近3個G的大小(pyinstaller是將整個運行環境進行打包),對,你沒聽錯,一個EXE有3個G!

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

  • nuitka真香!

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

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

二. Nuitka的安裝及使用

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

  • 下載vs2019(MSVS)或者MinGW64,反正都是C++的編譯器,隨便下。

2.2 使用過程

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

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

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

使用以下命令(調試)直接生成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:方便移植到其他機器,不用再安裝python

  • --show-memory --show-progress:展示整個安裝的進度過程

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

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

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

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

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

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

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

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

當然這里你會發現真正運行exe的時候,會報錯:no module named torch,cv2,tensorflow等等這些沒有轉成C++的第三方包。

這里需要找到這些包(我的是在softwarepython3.7Libsite-packages下)復制(比如numpy,cv2這個文件夾)到demo.dist路徑下。

感謝各位的閱讀,以上就是“Python打包神器Nuitka怎么使用”的內容了,經過本文的學習后,相信大家對Python打包神器Nuitka怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定日县| 皮山县| 丹东市| 长沙县| 尖扎县| 印江| 福贡县| 隆子县| 内黄县| 临江市| 乡宁县| 富源县| 宿迁市| 望谟县| 尉犁县| 和林格尔县| 秦皇岛市| 信阳市| 阿坝县| 偃师市| 洪泽县| 清丰县| 读书| 青铜峡市| 太仆寺旗| 华容县| 茂名市| 扶绥县| 苍山县| 合山市| 黄浦区| 来安县| 竹溪县| 高州市| 平泉县| 碌曲县| 惠州市| 定州市| 余庆县| 沙雅县| 武安市|