使用pyinstaller将训练好的目标检测算法(基于pytorch)打包成一个exe文件(完整过程)

您所在的位置:网站首页 把py文件打包成exe的软件 使用pyinstaller将训练好的目标检测算法(基于pytorch)打包成一个exe文件(完整过程)

使用pyinstaller将训练好的目标检测算法(基于pytorch)打包成一个exe文件(完整过程)

2024-07-17 14:23| 来源: 网络整理| 查看: 265

我在linux上用pytoch训练了一个目标检测算法来检测图片中的麦穗个数,然后用pyqt5写了一个界面,我想把这个算法用pyinstaller打包成一个在任何windows系统都能直接运行的exe文件

第一步: 在算法训练好之后,用pyqt5写一个界面(pyqt5的安装过程以及如何写界面的教程很多,可以在网上查),接下来安装pyinstaller(直接用pip install ),一开始我直接在linux上进行打包 : 使用命令:pyinstaller -F -c **.py (-F是指将所有文件只打包成一个文件,-c是指在运行exe文件时会同时弹出命令行窗口,该窗口会显示文件运行时出现的种种问题,从而进行对症下药,所以在一开始打包时一定要用-c进行,这样才可以分析打包中出现了哪些问题,等文件能够顺利运行后再用 pyinstaller -F -w **.py进行打包,-w是指只弹出UI界面,不弹出命令行界面) 打包发现生成了一个build文件夹,一个dist文件夹,还有一个 .spec文件。其中dist文件夹下生成了一个linux的可执行文件,这个文件并没有exe后缀,因此在windows上也不能执行,后来查了一下,原来还是的在windows下进行打包才能生成exe文件。

第二步: 于是我又用另一台电脑在windows下配置了深度学习环境,pyqt5,pyinstaller等环境(用windows配置深度学习环境还挺麻烦),接下来又用pyinstaller进行打包,打包过程还算顺利,生成了exe文件。 但是点开这个exe文件的时候 出现“failed to excute the script",并不能运行,在弹出的终端界面中也报出了相应的错误,经过打包和多次解决错误,最终可以顺利运行,下面介绍一下我所遇到的错误: 1. ModuleNotFoundError: No module named 'pywt._extensions._cwt 解决办法: 将.spec文件中的hiddenimports 改为 hiddenimports=[“pywt”,“pywt._extensions._cwt”], 然后用pyinstaller -F -c **.spec再次进行打包。 如图:在这里插入图片描述 2.找不到某些文件,如csv文件,模型参数文件,因为pyinstaller打包时不会将资源文件(如界面图片等)打包,因此需要将需要的文件放在exe文件的同级目录下面,如图:在这里插入图片描述 3.使用skimage.io.imread读取图片报错,最后我换成了cv2.imread(),但是注意两者读取出的图片格式不同,前者是RGB,后者是BGR,可以如下进行转换:在这里插入图片描述 最后,打包的exe文件终于可以在windows系统上直接打开运行了,测试了几台windows电脑都没有问题,大功告成! 在这里插入图片描述 在这里插入图片描述 总结:使用pyinstaller打包大型的文件,过程中会出现各种问题,上面写的也只是其中一部分,不过只要耐心一步一步来,最后肯定可以成功的,如果大家有什么问题,欢迎在下面留言,共同交流。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3