Nuitka 打包pytorch、numpy项目

Nuitka打包就是先略过torch,numpy,pyqt等系统库,运行时缺什么包就从对应python环境中复制相应的包过去就好了。

在我打包完pytorch代码并复制torch和numpy包到根目录后,还是出现了导入失败的问题。经过百度发现是由于numpy版本太高的原因。在我把numpy从1.19.降到1.16.之后,重复上述操作就打包成功了。

Nuitka 是一种新型的打包技术,它可以把python代码用c重新编译并运行

nuitka –standalone –mingw64 –show-memory –show-progress –nofollow-imports –output-dir=o index.py

如果python程序中仅仅使用了一些自定义的模块,那么参数 --follow-imports就足以达到发布的效果,一个exe外加一个python3x.dll就可以在任何电脑上运行,无论是否安装python(当然架构要对应),然而实际情况往往比较复杂,稍微强大一点的程序都会调用一些第三方库,比如pyqt,numpy,这些模块中调用了大量的pyd或者dll文件。这个时候就需要使用参数 <strong>--standalone</strong>

参数 --standalone默认包含参数 --follow-imports,即会尝试对所有的引用到的库都进行打包,将这些库中的py或者pyc打包进exe,然后再将所依赖的二进制文件(dll或者pyd)拷贝到exe所在文件夹。只要命令能够执行完成不出错,生成的exe就可以完全脱离python环境独立运行。

nuitka打包相对来说是比较耗费时间的,特别是针对像pandas这样的大家伙,所以在最终发布之前,可以暂时不对这些库进行打包(–nofollow-imports),而是将这些库手动拷贝到搜索路径中,比如exe同级目录。只要能够找到这些库,程序就能正常运行,否则会提示 no module named xxx

Original: https://blog.csdn.net/weixin_38906715/article/details/125533618
Author: Replete
Title: Nuitka 打包pytorch、numpy项目

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762790/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球