Nuitka 打包pytorch项目
背景
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.*之后,重复上述操作就打包成功了。