Open1

PySideで `qt.qpa.plugin: Could not find the Qt platform ...` のエラーが出てくるときの対処

eqseqs

問題が起こったコード

# -*- coding: utf-8 -*-
import PySide6
from PySide6.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
label = QLabel('Hello World!')
label.show()
app.exec_()

次のようなエラーが出てきた:

qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

原因と解決方法

環境変数 QT_QPA_PLATFORM_PLUGIN_PATH が設定されてなかったのが原因.
自分で追加するか下記のように環境変数の設定を追記すればいける.

# -*- coding: utf-8 -*-
import sys
import os

import PySide6
from PySide6.QtWidgets import QApplication, QLabel

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

app = QApplication(sys.argv)
label = QLabel('Hello World!')
label.show()
app.exec_()