問題点
PyQtを用いてWebカメラの映像からface_recognitionを使い顔判定を行い、その判定結果を出力するプログラムを作成しています。Pythonではエラーが発生しない状態で全く問題なく動くのですが、Pyinstallerを用いてexeファイルにすると以下のエラーが表示されます。
QWidget: Must construct a QApplication before a QWidget
調べてみたところ、QWidgetの前にQApplicationを読まなければならないとわかりましたが、そもそもPythonで実行したときにはエラーが発生せずにexeにした状態だとエラーが発生しているので、何が悪く発生したのか全くわかりません。また、処理の順序を考えるとQApplicationの後にQWidgetを読んでいるので順序自体もまちがってはいないようにも見えます。
該当のソースコード
Python
1#430~437行目 2if __name__ == '__main__': 3 app = QApplication(sys.argv) 4 app.setWindowIcon(QIcon("icon.ico")) 5 main_window = MainWindow() #48行目 class MainWindow(QMainWindow) 6 control_Panel = controlPanel() #196行目 class controlPanel(QWidget) 7 main_window.show() 8 control_Panel.show() 9 app.exec_()
試したこと
Python
1 app = QApplication(sys.argv)
実際に書いた行番号でのことだけを言えばQApplicationが後に書かれているのは事実なので、先程の部分のこれをすべてのライブラリのインポートが完了した直後に行われるようにしてみました。
あなたの回答
tips
プレビュー