用Pyinstaller封裝一個py文件時,過程沒有問題,但打開后會出現(xiàn)閃退的現(xiàn)象。因此上網(wǎng)找,找到了上面網(wǎng)址所示的解決方法。也就是用cmd打開exe文件。
假如我要封裝mani.py,Windows下進入文件所在地址,按住shift點擊鼠標右鍵打開Powershell。
之后出現(xiàn)Powershell的界面,我們打入
pyinstaller -F -w main.py
其中-F會讓生成的文件只有一個main.exe(dist文件夾里面),而不是很多個文件。而原本我們生成的exe文件會打開控制臺窗口,但是我們的-w選項可以讓控制臺窗口消失。
一開始,我生成的main.exe文件打開后會出現(xiàn)閃退的現(xiàn)象。
我們在main.exe的路徑打開Powershell,然后
我記得會提示缺失了哪個模塊。其實在Pycharm可以正常打開,但是在exe文件中,我們需要再import一個模塊。我當時提示的是缺失,PyQt5.sip。
在py文件import這個模塊就可以了。
補充:python 用pyinstaller 封裝exe 雙擊后瘋狂閃退解決辦法
這里我們需要分析問題報錯閃退問題,如何查看問題:
利用 截圖工具或者 QQ截圖快捷鍵 去抓取cmd窗口的閃退里面的內(nèi)容,去查看問題。
大部分都是因為 缺少模塊包 導致的。在這里我想說的是網(wǎng)上那種 加 input 和 os.system(“pause”) 還有在cmd命令模式下加 .\***.exe 都是沒有用的,如果你的代碼真的沒有input 那的確是要添加。
就算不添加其實也能在CMD命令窗口中執(zhí)行代碼的緩慢過程,但 是 不會閃退的。
閃退解決辦法:
1.利用QQ快捷鍵截圖到exe在cmd閃退中代碼。
2.截圖好后,把截圖另存到桌面,方便后續(xù)仔細查看問題
3.打開截圖 查看問題 ,如果你看不懂其中代碼提示,可以進行百度翻譯,主要看 error 這類英文后面的命令提示
我以我出現(xiàn)的閃退問題為例:
下面這個圖是 利用QQ截圖 截圖到的
分析上面主要原因是【看error 后面的提示】:No module named “pandas” ----> 缺少名字為 pandas 模塊
這個時候,我們發(fā)現(xiàn)用的編譯器 pycharm 上面明明已經(jīng)安裝了 pandas。
主要原因:
pycharm 和 IDLE 是兩個python編譯器,你在安裝模塊包的時候,是通過pycharm 編譯器安裝的,模塊包默認都在項目的venv文件下。
在 IDLE編譯器 里面是沒有pandas這個模塊包。就會導致你在 IDLE(CMD命令模式) 用 pyinstaller 封裝 exe 的時候會缺少模塊,在封裝的時候也沒有報錯,因為封裝時不檢測你的程序是否能執(zhí)行,只是單純打包好,就類似于壓縮文件。
但是在封裝好后,雙擊 exe 程序時候會執(zhí)行命令,就會提示未識別到模塊包,導致閃退。如果您在 IDLE命令模式下 執(zhí)行pyinstaller 報錯,提示沒有這個命令,同理也是一樣。
需要在IDLE 安裝pyinstaller命令是 pip install pyinstaller
所以我們在IDLE 封裝前要在IDLE模式下安裝好模塊包,執(zhí)行如下命令:
就完美解決 exe閃退問題!
如果需要在IDLE 去安裝pycharm 的模塊包,就需要指定到安裝路徑【路勁為 pycharm 創(chuàng)建項目文件下的 ***\venv\Lib\site-packages\】,舉例為:
pip install --target=D:\python辦公自動化\venv\Lib\site-packages pyinstaller
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 詳解pyinstaller生成exe的閃退問題解決方案
- 解決pyinstaller打包發(fā)布后的exe文件打開控制臺閃退的問題
- 解決Pyinstaller打包軟件失敗的一個坑
- 解決Pyinstaller打包為可執(zhí)行文件編碼錯誤的問題