pyinstaller打包生成的exe運行報錯:ImportError: unable to find Qt5Core.dll on PATH

pyinstaller打包pyqt生成的exe,直接運行exe文件時,程序閃退。發現報了個錯:ImportError: unable to find Qt5Core.dll on PATH

問題及解決辦法

程序閃退,第一反映肯定是有問題了,但是閃退沒法跟蹤問題,於是在命令行窗口執行exe,顯示如下:

D:\>"D:\python project\demo\dist\demo.exe"
Traceback (most recent call last):
  File "demo.py", line 3, in <module>
  File "d:\python project\demo\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "lib\site-packages\PyQt5\__init__.py", line 41, in <module>
  File "lib\site-packages\PyQt5\__init__.py", line 33, in find_qt
ImportError: unable to find Qt5Core.dll on PATH
[11632] Failed to execute script demo
 

這就奇怪了,看錯誤是說系統path路徑下找不到dll庫,以爲是缺少路徑了,於是就在系統環境變量path裏把pyqt5的庫目錄給加進去,發現還是沒用,沒辦法只能去網上尋找答案,但是找了一大圈還是沒找到解決辦法,幾翻折騰下,還是在必應裏找到幾個網站,才明白原因。

具體就不詳說了。總的來說呢,就是有的版本pyqt5庫對系統變量的加載存在bug,具體原因只有官方纔能解釋了,咱也沒法管了,對有bug的版本庫提供一種辦法就是,在主程序中pyqt5庫import之前就對系統變量進行手動設置,import代碼如下:

import sys, os
if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import *
from untitled import Ui_MainWindow
from PyQt5.QtGui import *

這樣打包之後exe就能完美運行了
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章