Nuitka,Python 打包神器!

pyinstaller 和 Nuitka 使用感受

1.1 使用需求

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

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

1.2 使用感受

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

Nuitka 的安裝及使用

2.1 nuitka 的安裝

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 的命令:

經過 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++ 的第三方包。這裏需要找到這些包(我的是在 software\python3.7\Lib\site-packages 下)複製(比如 numpy,cv2 這個文件夾)到 demo.dist 路徑下。

至此,exe 能完美運行啦!



本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/lI10U15drzwEh2JNa7K69A