錯誤 qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““ 的解決方法

I'm George發表於2020-12-18
系統環境:
PySide2 和 PyQt5 的區別

相同點:兩者都是QT與Python結合的橋樑;
不同點:PyQt的開發者是英國的“Riverbank Computing”公司,而PySide則是由Qt的開發公司諾基亞釋出的,兩者的主要區別主要是提供的授權方式不同:PyQt遵守GPLv3協議,而PySide則是LGPL協議,前者可以免費地用於自由軟體的開發,而後者屬於閉源商用。更詳細資料可參考:PySide2與PyQt5區別

錯誤描述

在使用PySide2 或者 PyQt5 的過程中可能會出現以下錯誤:
錯誤描述
根據給出的提示可以看出錯誤原因是系統找不到Qt平臺的外掛,解決方法則是將PySide2或者PyQt5的plugins目錄加入到QT_QPA_PLATFORM_PLUGIN_PATH環境變數裡面。

解決方案

上面部分已經說了解決思路,具體的實施方式有以下兩種:

  1. 新增啟動程式碼【簡單重複】:

    import PySide2
    
    dirname = os.path.dirname(PySide2.__file__) 
    plugin_path = os.path.join(dirname, 'plugins', 'platforms')
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
    

    如果是PyQt5則需要修改啟動程式碼為:

    import qt5_applications
    
    dirname = os.path.dirname(qt5_applications.__file__)
    plugin_path = os.path.join(dirname, 'Qt', 'plugins', 'platforms')
    os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
    

    在引入各類包的後面插入上述程式碼:
    程式碼插入位置

  2. 修改配置檔案【一勞永逸】
    如果不想每次在程式碼前新增上述程式碼,可以修改PySide2的初始化檔案"c:\users\XXX.virtualenvs\pyqt5-3bre18dc\lib\site-packages\PySide2_init_.py" ,在下圖位置新增上述程式碼即可:
    修改配置檔案
    對於PyQt5則需要手動新增PyQt的環境變數:
    新增環境變數

如需快速查詢使用pip命令安裝的包的位置可以使用pip show model_name:
pip show

參考文獻

相關文章