關於Pyinstaller閃退的補救措施

用Pyinstaller封裝一個py文件時,過程沒有問題,但打開後會出現閃退的現象。因此上網找,找到瞭上面網址所示的解決方法。也就是用cmd打開exe文件。

假如我要封裝mani.py,Windows下進入文件所在地址,按住shift點擊鼠標右鍵打開Powershell。

之後出現Powershell的界面,我們打入

pyinstaller -F -w main.py

其中-F會讓生成的文件隻有一個main.exe(dist文件夾裡面),而不是很多個文件。而原本我們生成的exe文件會打開控制臺窗口,但是我們的-w選項可以讓控制臺窗口消失。

一開始,我生成的main.exe文件打開後會出現閃退的現象。

我們在main.exe的路徑打開Powershell,然後

./main.exe

我記得會提示缺失瞭哪個模塊。其實在Pycharm可以正常打開,但是在exe文件中,我們需要再import一個模塊。我當時提示的是缺失,PyQt5.sip。

在py文件import這個模塊就可以瞭。

補充:python 用pyinstaller 封裝exe 雙擊後瘋狂閃退解決辦法

這裡我們需要分析問題報錯閃退問題,如何查看問題:

利用 截圖工具或者 QQ截圖快捷鍵 去抓取cmd窗口的閃退裡面的內容,去查看問題。

大部分都是因為 缺少模塊包 導致的。在這裡我想說的是網上那種 加 input 和 os.system(“pause”) 還有在cmd命令模式下加 .\***.exe 都是沒有用的,如果你的代碼真的沒有input 那的確是要添加。

就算不添加其實也能在CMD命令窗口中執行代碼的緩慢過程,但 是 不會閃退的。

閃退解決辦法:

1.利用QQ快捷鍵截圖到exe在cmd閃退中代碼。

2.截圖好後,把截圖另存到桌面,方便後續仔細查看問題

3.打開截圖 查看問題 ,如果你看不懂其中代碼提示,可以進行百度翻譯,主要看 error 這類英文後面的命令提示

我以我出現的閃退問題為例:

下面這個圖是 利用QQ截圖 截圖到的

分析上面主要原因是【看error 後面的提示】:No module named “pandas” —-> 缺少名字為 pandas 模塊

這個時候,我們發現用的編譯器 pycharm 上面明明已經安裝瞭 pandas。

主要原因:

pycharm 和 IDLE 是兩個python編譯器,你在安裝模塊包的時候,是通過pycharm 編譯器安裝的,模塊包默認都在項目的venv文件下。

在 IDLE編譯器 裡面是沒有pandas這個模塊包。就會導致你在 IDLE(CMD命令模式) 用 pyinstaller 封裝 exe 的時候會缺少模塊,在封裝的時候也沒有報錯,因為封裝時不檢測你的程序是否能執行,隻是單純打包好,就類似於壓縮文件。

但是在封裝好後,雙擊 exe 程序時候會執行命令,就會提示未識別到模塊包,導致閃退。如果您在 IDLE命令模式下 執行pyinstaller 報錯,提示沒有這個命令,同理也是一樣。

需要在IDLE 安裝pyinstaller命令是 pip install pyinstaller

所以我們在IDLE 封裝前要在IDLE模式下安裝好模塊包,執行如下命令:

pip install pandas

就完美解決 exe閃退問題!

如果需要在IDLE 去安裝pycharm 的模塊包,就需要指定到安裝路徑【路勁為 pycharm 創建項目文件下的 ***\venv\Lib\site-packages\】,舉例為:

pip install --target=D:\python辦公自動化\venv\Lib\site-packages pyinstaller

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: