首页 技术 正文
技术 2022年11月17日
0 收藏 424 点赞 3,706 浏览 1222 个字

  使用Pyinstaller来打包自己开发的软件时遇到的几个问题及解决方法。工具主要功能是数据分析,使用机器学习算法完成数据训练和预测功能。主要用到了两个学习库keras和sklearn,所以说在打包时出现的问题无非是sklearn和keras的后端TensorFlow在打包运行过程出错的问题。

  注意:灵活使用Pyinstaller的参数,在首次使用pyinstaller -F xxx.py生成的xxx.exe运行出现错误的时候,可以以debug的模型重新编译,即
pyinstaller -F -D xxx.py来打包,便于调试使用。

  打包完成后会在指定目录下生成文件夹build和dist,还有xxx.spec文件。我们可以在cmd中运行dist中的xxx.exe文件,这样我们能够在cmd窗口中查看错误信息。言归正传,下面是遇到的几种问题。

1、缺少dll、so、其它文件。

  解决方法:既然缺少某个文件,那么我们就告诉他缺少的文件在哪里。

  第一种:我们是以debug的形式打包,即参数中加入的-D。

  在cmd中的错误提示中会显示程序在某个路径下找不到文件,那么我们就在电脑中找到这个文件并放到指定路径下。比如图片显示程序运行错误的原因是找不到VERSION这个文件(ps:这个文件中只是包含了astor这个库的版本信息,当然这个库是干什么用的我也不知道,估计是别的库的依赖吧),那么我就在run文件夹创建了astor这个文件夹,然后把VERSION放进去即可。

  

  第二种:打包不加入debug或者只生成xxx.exe文件时,我们需要把缺少的文件打包到xxx.exe中。

  Pyinstaller打包参数有 –add-data这个参数,我们使用这个参数指定文件的位置以及打包的位置。还是上面的错误,VERSION文件在我的电脑桌面上,即C:\Users\Desktop\VERSION,那么打包时告诉程序文件的位置:

  

pyinstaller -F --add-data="C:\Users\Desktop\VERSION;astor" xxx.py
# --add-data="文件位置;缺失文件位置(注意这里是相对路径,即相对于程序)"

  作者发现:第二种情况打包生成的xxx.exe运行时会在TMP目录下生成一个临时文件,这个临时文件存放着python的一些库文件,如果我们将缺失的数据包成功打包到xxx.exe的话会在这个临时文件相应目录下找到。如下图所示,_MEI42082是运行xxx.exe临时生成文件夹,此时,我们去这个文件夹中目录可以找到astor这个文件了。

  总之缺少什么文件就给他指定位置。

2、缺少模块

  如果出现像上图一样类似的问题即缺少模块的话,通过Pyinstaller命令在打包的时候指定。

pyinstaller -F --hidden-import="numpy.core._dtype_ctypes" xxx.py

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,983
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,500
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,344
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,127
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,761
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,838