关于pyinstaller生成.exe程序报错:缺少.ini文件的分析
目录
- 生成的.exe文件执行报错
- 测试办法
- 命令行窗口显示报错信息如下
- 新的报错如下
- 上述报错信息解释如下
- 附上pyinstaller的常见参数
使用指令:pyinstaller -F -w main.py
生成的.exe文件执行报错
看报错信息,初步怀疑是生成的.exe不能执行.ini配置文件。
将程序需要的.ini文件放到.exe同级目录下,虽然还是执行不成功,但是没有上述报错了;删除同级目录下面的.ini文件,上述报错仍然存在,说明初步的判定成立,.exe执行不成功与.ini配置文件有关系。
测试办法
pyinstaller不加参数”-F"和“-w",执行执行指令:pyinstaller main.py
加不加“-F"和”-w"效果的详细说明文章链接:https://www.jb51.net/article/183469.htm
命令行窗口显示报错信息如下
dist目录下并没有.ini配置文件,手动添加该文件,再运行main.exe程序,
新的报错如下
上述报错说模块openpyxl执行load_workbook打开文件功能时报错,但是在pycharm环境下运行main.py程序是ok的,不明白为什么生成.exe之后就无法打开.xlsx文件。
尝试了好几个.xlsx文件都这样,怀疑是不是生成的.exe不能打开电脑加密的.xlsx文件?
在电脑上新建一个.xlsx文件,不对文件进行任何操作,使其处于未被加密状态,执行.exe程序,和打开加密的.exe文件报错对比如下,发现生成的.exe确实不能打开加密的文件:
上述报错信息解释如下
最上面的红框框出来的报错是打开的加密文件,可以看出来执行到代码的30行load_workbook打开文件操作;
下面的红框框出来的报错是打开的没有加密文件,可以看出来执行到代码的35行了,这个时候30行的load_workbook打开文件操作执行ok通过了,是其他原因导致的报错;
说明:生成的.exe确实不能打开加密的文件。
将文件解密后,.exe功能执行ok。
同样用解密的文件,使用指令:pyinstaller -F -w main.py 生成的.exe程序,即使放置了需要的.ini配置文件执行结果也不是想要的(只显示一个界面,点击确认button后应该弹出另外一个数据展示界面),但是不会报错。原因未知。
使用"-n"指定生成的.exe的名称,指令:pyinstaller main.py. -n ***
由于.exe实现的界面功能比较简单,没有在程序里面设置日志功能,当遇到操作不当引起bug时还是需要借助命令行窗口的显示查找原因的,所以不使用"-w"参数取消显示命令行窗口了。
附上pyinstaller的常见参数
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
使用PyInstaller 打包配置文件
目录 PyInstaller打包配置文件 (一) 仅打包python文件 (二) 打包python文件与资源文件 pyinstaller打包后,配置文件无法正常读取问题 PyInstaller打包配置文件 在很多项目完成时,我们需要将python文件打包发布为一个exe应用程序,在python 中,打包就变得很简单了. 此文章仅介绍最简单的单个python文件打包,以及资源打包,后续复杂的,实践后再做更新. (一) 仅打包python文件 Step1. 安装 PyInstaller 第三方库.
-
Pyinstaller打包工具的使用以及避坑
目录 一.基本使用 二.基本错误处理 1.当运行exe后出现提示:No module named XXX 2.当运行出现报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 658: illegal multibyte 3.当运行出现这种报错:TemplateDoesNotExist at /index/ 4.项目缺少样式css和js 本篇博客主要介绍的是pyinstaller在windows下的基本使用和基础
-
pyinstaller打包exe程序的步骤和添加依赖文件的实现
目录 pyinstaller打包exe程序和添加依赖文件 1.安装pyinstaller库 2.pyinstaller的打包机制 3.打包命令 4.添加导包外的一些依赖文件 5..spec方式打包 6.pyinstaller常用参数 pyinstall打包时的依赖问题 pyinstaller打包exe程序和添加依赖文件 或许我们并不是专业的程序猿,但是却可以通过python来提高我们的工作效率,减少加班时间,让代码替我们完成一些重复的工作,节省下来的时间去泡个妹子,牵牵小手不香吗 话不多说,马上
-
用python打包exe应用程序及PyInstaller安装方式
目录 1.PyInstaller简介 2.PyInstaller安装 3. 准备需要的文件 4.使用Pyinstaller 5.参数的含义 6. 附圣诞树源文件 7. 源文件下载 1.PyInstaller简介 PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序. PyInstaller 制
-
Python使用pyinstaller打包含有gettext locales语言环境的项目(推荐)
问题 如何使用 pyinstaller 打包使用了 gettext 本地化的项目,最终只生成一个 exe 文件 起因 最近在用 pyhton 做一个图片处理的小工具,顺便接触了一下 gettext,用来实现本地化化中英文转换.项目主要结构如下: . |--src # 源码 | |--package1 | |--package2 | |--locales # 本地化文件 | | |--en # 英文 | | | |--LC_MESSAGES | | | |--en.mo | | |--zh # 中
-
关于pyinstaller生成.exe程序报错:缺少.ini文件的分析
目录 生成的.exe文件执行报错 测试办法 命令行窗口显示报错信息如下 新的报错如下 上述报错信息解释如下 附上pyinstaller的常见参数 使用指令:pyinstaller -F -w main.py 生成的.exe文件执行报错 看报错信息,初步怀疑是生成的.exe不能执行.ini配置文件. 将程序需要的.ini文件放到.exe同级目录下,虽然还是执行不成功,但是没有上述报错了:删除同级目录下面的.ini文件,上述报错仍然存在,说明初步的判定成立,.exe执行不成功与.ini配置文件有关系
-
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
1 调试过程 用Python3.6+Sciter+PyCharm写了一个py测试脚本helloworld.py,该脚本中只含有一条语句"import sciter".在PyCharm中运行之,未报错. #helloworld.py import sciter 然后将该脚本用PyInstaller打包成exe文件,打包程序pack.py如下: #pack.py from PyInstaller.__main__ import run if __name__ == '__main__':
-
解决pyinstaller打包运行程序时出现缺少plotly库问题
用pyinstaller打包tkinter程序,打包后运行exe是报如下错误: 搜索一阵发现是pyinstaller在打包的时候(StartRun.py我要打包的主程序文件)可能会漏掉一些三方库,就在打包的时候加上三方库的绝对路径: pyinstaller StartRun.py -F -p C:\Python36\Lib\site-packages 发现打包完之后还是会报以上问题,继续搜索后用添加hook文件的方式可以解决(彻底解决了我的问题),修改方法: 1.找到C:\Python36\Li
-
详解pyinstaller生成exe的闪退问题解决方案
简单模块问题 如果在 pyinstaller project.py 的过程中,出现: No module named 'xxx' 那就 pip install xxx 就行,比如: $ pip install wxPython pypiwin32 tornado 这个 pip 对应于项目的虚拟环境. 其中 wxPython 对应 No module named 'wx' 其中 pypiwin32 对应 No module named 'win32com' 还有个老生常谈的小问题,提一下,避免萌新
-
微信小程序报错:this.setData is not a function的解决办法
微信小程序 报错:this.setData is not a function 在page中定义的代码如下,代码会报错:this.setData is not a function <strong> pasteEncryptedText:function()</strong>{ let decryptedPass = this.data.decryptedPassword; if (decryptedPass == '' ){ wx.showToast({ title: '请先输入
-
微信小程序报错: thirdScriptError的错误问题
微信小程序报错 VM1305:1 thirdScriptError Cannot read property 'name' of undefined TypeError: Cannot read property 'name' of undefined at z (http://127.0.0.1:38175/appservice/__dev__/WAService.js:2:1560728) at Ie (http://127.0.0.1:38175/appservice/__
-
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
假设我们有一段程序,从 Redis 中读取数据,解析以后提取出里面的 name 字段: import json import redis client = redis.Redis() def read(): while True: data = client.lpop('info') if data: yield json.loads(data) else: break def parse(): for data in self.read(): print(data['name']) if __
-
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
1.根据自己的系统和python版本下载安装,我用的是: PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x32-2.exe python-3.5.4.exe pycharm装的是破解版 以上按次序依次安装,都按照默认路径安装即可. 2.打开pycharm 2.因为我用来写了一个串口工具,所以代码很多,就不贴了,外加一个用pyqt 画的一个界面 打开pyqt --> designer..拖拽方式生成一个界面 保存到刚才新建的python工程目录下,和 xxx.py一个目录.文件后缀位x
-
vue3使用element-plus中el-table组件报错关键字'emitsOptions'与'insertBefore'分析
最近用vue3在做一个项目的时候,使用了element-plus中的组件el-table,在本地运行的时候一点错误也没有,但是打包后放到线上环境就开始报错.TypeError: Cannot read properties of null (reading 'insertBefore')和TypeError: Cannot read properties of null (reading 'emitsOptions') 这种报错可能存在三种情况. 然后查看代码的时候,我这边应该是第三种情况,改过
随机推荐
- javascript setinterval 的正确语法如何书写
- 解决phpcms更换javascript的幻灯片代码调用图片问题
- asp.net FCKeditor自定义非空验证
- php htmlspecialchars加强版
- Android ListView优化之提高android应用效率
- PHP标准类(stdclass)用法示例
- javascript 函数介绍
- android wifi信号强度等级区分的修改介绍
- Javascript基础回顾之(一) 类型
- python多重继承新算法C3介绍
- word-wrap在firefox中不起作用的解决方法
- spring实现jdbctemplate添加事务支持示例
- 悔过励志帖《同学,我大四了》全文
- jquery struts 验证唯一标识(公用方法)
- JS 在指定数组中随机取出N个不重复的数据
- Java 从Set里面取出有序的记录详解及实例
- android打开rar压缩文件
- win7下安装 JDK 基本流程
- 基于C++实现的线程休眠代码
- C++日志记录类实例解析