日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

關于pyinstaller生成.exe程序報錯:缺少.ini文件的分析_python

作者:Logintern09 ? 更新時間: 2022-04-15 編程語言

使用指令: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的常見參數

在這里插入圖片描述

原文鏈接:https://blog.csdn.net/Logintern09/article/details/122241738

欄目分類
最近更新