網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
關(guān)于pyinstaller生成.exe程序報(bào)錯(cuò):缺少.ini文件的分析_python
作者:Logintern09 ? 更新時(shí)間: 2022-04-15 編程語(yǔ)言使用指令:pyinstaller -F -w main.py
生成的.exe文件執(zhí)行報(bào)錯(cuò)
看報(bào)錯(cuò)信息,初步懷疑是生成的.exe不能執(zhí)行.ini配置文件。
將程序需要的.ini文件放到.exe同級(jí)目錄下,雖然還是執(zhí)行不成功,但是沒有上述報(bào)錯(cuò)了;刪除同級(jí)目錄下面的.ini文件,上述報(bào)錯(cuò)仍然存在,說明初步的判定成立,.exe執(zhí)行不成功與.ini配置文件有關(guān)系。
測(cè)試辦法
pyinstaller不加參數(shù)”-F"和“-w",執(zhí)行執(zhí)行指令:pyinstaller main.py
加不加“-F"和”-w"效果的詳細(xì)說明文章鏈接:https://www.jb51.net/article/183469.htm
命令行窗口顯示報(bào)錯(cuò)信息如下
dist目錄下并沒有.ini配置文件,手動(dòng)添加該文件,再運(yùn)行main.exe程序,
新的報(bào)錯(cuò)如下
上述報(bào)錯(cuò)說模塊openpyxl執(zhí)行l(wèi)oad_workbook打開文件功能時(shí)報(bào)錯(cuò),但是在pycharm環(huán)境下運(yùn)行main.py程序是ok的,不明白為什么生成.exe之后就無(wú)法打開.xlsx文件。
嘗試了好幾個(gè).xlsx文件都這樣,懷疑是不是生成的.exe不能打開電腦加密的.xlsx文件?
在電腦上新建一個(gè).xlsx文件,不對(duì)文件進(jìn)行任何操作,使其處于未被加密狀態(tài),執(zhí)行.exe程序,和打開加密的.exe文件報(bào)錯(cuò)對(duì)比如下,發(fā)現(xiàn)生成的.exe確實(shí)不能打開加密的文件:
上述報(bào)錯(cuò)信息解釋如下
最上面的紅框框出來的報(bào)錯(cuò)是打開的加密文件,可以看出來執(zhí)行到代碼的30行l(wèi)oad_workbook打開文件操作;
下面的紅框框出來的報(bào)錯(cuò)是打開的沒有加密文件,可以看出來執(zhí)行到代碼的35行了,這個(gè)時(shí)候30行的load_workbook打開文件操作執(zhí)行ok通過了,是其他原因?qū)е碌膱?bào)錯(cuò);
說明:生成的.exe確實(shí)不能打開加密的文件。
將文件解密后,.exe功能執(zhí)行ok。
同樣用解密的文件,使用指令:pyinstaller -F -w main.py 生成的.exe程序,即使放置了需要的.ini配置文件執(zhí)行結(jié)果也不是想要的(只顯示一個(gè)界面,點(diǎn)擊確認(rèn)button后應(yīng)該彈出另外一個(gè)數(shù)據(jù)展示界面),但是不會(huì)報(bào)錯(cuò)。原因未知。
使用"-n"指定生成的.exe的名稱,指令:pyinstaller main.py. -n ***
由于.exe實(shí)現(xiàn)的界面功能比較簡(jiǎn)單,沒有在程序里面設(shè)置日志功能,當(dāng)遇到操作不當(dāng)引起bug時(shí)還是需要借助命令行窗口的顯示查找原因的,所以不使用"-w"參數(shù)取消顯示命令行窗口了。
附上pyinstaller的常見參數(shù)
原文鏈接:https://blog.csdn.net/Logintern09/article/details/122241738
相關(guān)推薦
- 2023-10-09 git stash
- 2022-07-28 Python中schedule模塊關(guān)于定時(shí)任務(wù)使用方法_python
- 2022-09-26 Python文件相關(guān)操作和方法匯總大全_python
- 2022-09-21 Mac安裝軟件時(shí)提示已損壞的完美解決方法_相關(guān)技巧
- 2022-05-24 flutter實(shí)現(xiàn)頭部tabTop滾動(dòng)欄_Android
- 2022-07-14 Oracle中nvl()和nvl2()函數(shù)實(shí)例詳解_oracle
- 2021-12-14 linux下多線程中的fork介紹_Linux
- 2022-04-20 詳細(xì)聊聊sql中exists和not?exists用法_數(shù)據(jù)庫(kù)其它
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支