背景
Nuitka 是一種新型的打包技術,它可以把python代碼用c重新編譯並運行
具體操作可以參考Python打包exe的王炸-Nuitka。一定要耐着性子把視頻看完,網上很多吹Nuitka的文章,然而我一直沒有成功打包過pytorch項目(而我使用pyinstaller打包成功了),在我成功打包后,發現確實很方便,和pyinstaller有的一拼。
代碼
import torch
a=torch.ones([100,100,3])
print(a)
打包過程
直接打包調試
命令
nuitka --standalone --mingw64 --show-memory --show-progress --nofollow-imports --output-dir=o index.py
運行
復制python環境中的pytorch包到程序根目錄
降低numpy版本到1.16.*,並重新復制python環境中的numpy包到程序根目錄
總結
Nuitka打包就是先略過torch,numpy,pyqt等系統庫,運行時缺什么包就從對應python環境中復制相應的包過去就好了。
在我打包完pytorch代碼並復制torch和numpy包到根目錄后,還是出現了導入失敗的問題。經過百度發現是由於numpy版本太高的原因。在我把numpy從1.19.*降到1.16.*之后,重復上述操作就打包成功了。