关于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的常见参数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pyinstaller打包exe程序的步骤和添加依赖文件的实现

    目录 pyinstaller打包exe程序和添加依赖文件 1.安装pyinstaller库 2.pyinstaller的打包机制 3.打包命令 4.添加导包外的一些依赖文件 5..spec方式打包 6.pyinstaller常用参数 pyinstall打包时的依赖问题 pyinstaller打包exe程序和添加依赖文件 或许我们并不是专业的程序猿,但是却可以通过python来提高我们的工作效率,减少加班时间,让代码替我们完成一些重复的工作,节省下来的时间去泡个妹子,牵牵小手不香吗 话不多说,马上

  • 使用PyInstaller 打包配置文件

    目录 PyInstaller打包配置文件 (一) 仅打包python文件 (二) 打包python文件与资源文件 pyinstaller打包后,配置文件无法正常读取问题 PyInstaller打包配置文件 在很多项目完成时,我们需要将python文件打包发布为一个exe应用程序,在python 中,打包就变得很简单了. 此文章仅介绍最简单的单个python文件打包,以及资源打包,后续复杂的,实践后再做更新. (一) 仅打包python文件 Step1. 安装 PyInstaller 第三方库.

  • Python使用pyinstaller打包含有gettext locales语言环境的项目(推荐)

    问题 如何使用 pyinstaller 打包使用了 gettext 本地化的项目,最终只生成一个 exe 文件 起因 最近在用 pyhton 做一个图片处理的小工具,顺便接触了一下 gettext,用来实现本地化化中英文转换.项目主要结构如下: . |--src # 源码 | |--package1 | |--package2 | |--locales # 本地化文件 | | |--en # 英文 | | | |--LC_MESSAGES | | | |--en.mo | | |--zh # 中

  • 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下的基本使用和基础

  • 用python打包exe应用程序及PyInstaller安装方式

    目录 1.PyInstaller简介 2.PyInstaller安装 3. 准备需要的文件 4.使用Pyinstaller 5.参数的含义 6. 附圣诞树源文件 7. 源文件下载 1.PyInstaller简介 PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序. PyInstaller 制

  • 关于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') 这种报错可能存在三种情况. 然后查看代码的时候,我这边应该是第三种情况,改过

随机推荐