Für ein hierarchisches Projekt startet das erzeugte EXE-File von "pyinstaller" nicht.

Hi Leute,
Ich war auf dieser Seite und Ihr habt mir beim Problem des klickbaren QLineEdit geholfen. Jetzt ist das Projekt fast zu Ende und ich wollte aus dem Ganzen ein EXE-File generieren.
Nun habe Ich ein Problem mit der Ausführung von "pyinstaller" und zwar:
Wenn ich ein einzelnes Python-File kompiliere, wird ein EXE-File im "dist"-Verzeichnis erzeugt, mit dem ich das Programm starten kann und die GUI nach ein paar Sekunden erscheint.
Wenn ich aber versuche, mit " pyinstaller Relais_LastDauerTester.py" mein Projekt zu kompilieren und daraus ein EXE-File zu generieren, wird zwar ein ".exe"-File im "dist"-Verzeichnis erzeugt, passiert aber nichts, wenn ich sowohl im Windows-Explorer durch einen Doppelklick oder auf der DOS-Shell ausführe und es starte.
Der Mauszeiger ändert sich kurz zu einer Sanduhr und dann zurück und geschieht gar nichts.
Der einzige Unterschied zwischen diesen beiden Programmen ist, dass das erste nur ein einzelnes File ist und mein Projekt hierarchisch aufgebaut ist. Die Struktur des Projektes habe ich versucht, unten mit zwei "DIR"-Dos-Befehlen zu demonstrieren.
In PyCharm brauche nur das oberste File "Relais_LastDauerTester.py" zu starten, daher für "pyinstaller" habe ich dieses File genommen.
Aber wie es aussieht, muss ich für ein hierarchisches Projekt noch ein Argument angeben.
Ich habe über ganzes Wochenende gegoogelt, um eine brauchbare Lösung zu finden. Aber alles, was ich gefunden habe, war ausschliesslich für die Konvertierung eines ",py"-Files und nicht eines Projektes wie meins.
Bei manchen Vorschlägen musste man einen "Pause"- oder "input()"-Befehl in den Code hinzufügen, um das schnelle Verschwinden von DOS-Shell zu verhindern, was für mich überhaupt nicht in Frage kommt.
Habt Ihr eine Idee, woran es liegen könnte.
Ich bedanke mich im Voraus für jeden brauchbaren Hinweis, der mich weiterbringen könnte.
Gruss Mohsen
PS Ich arbeite an einem PC mit 1201 INFO: PyInstaller: 4.7 1202 INFO: Python: 3.9.5 1282 INFO: Platform: Windows-10-10.0.18363-SP0
Projekt-Struktur &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ...\SW\Relais_LastDauerTester_V0.5 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& <DIR> .idea <DIR> Logfiles <DIR> Relais_LastDauerTester 276 Relais_LastDauerTester.py <DIR> Screenshotfiles 405 settings.ini
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ...\SW\Relais_LastDauerTester_V0.5\Relais_LastDauerTester &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 9’308 GPIOControl.py 90’618 GUI_View.py 998 main.py 28’625 TestControl.py 2’584 test_gpiocontrol.py 269 __init__.py <DIR> __pycache__
Vereinfachte Projekt-Files mit den "import"-Zeilen ******************************************************************* Relais_LastDauerTester.py.py ******************************************************************* #!/usr/bin/env python3 # -*- coding: utf-8 -*-
from Relais_LastDauerTester.main import main
if __name__ == "__main__": main()
******************************************************************* main.py ******************************************************************* import sys
from PyQt5.QtCore import * from PyQt5.QtWidgets import QApplication from .GUI_View import MainWindow
def main(): app = QApplication(sys.argv)
# Erstellt das Hauptfenster window = MainWindow() window.show()
sys.exit(app.exec_())
if __name__ == '__main__': main()
******************************************************************* GUI_View.py ******************************************************************* import sys import subprocess
import PyQt5.QtGui as qtg from PyQt5.QtWidgets import (QLabel, QPushButton, QLineEdit, QCheckBox, QWidget, QVBoxLayout, QHBoxLayout, QGridLayout, QDialog, QFileDialog) from .TestControl import *
class MainWindow(QWidget): def __init__(self): super().__init__()
def createMainWindow(self): ...
def exitMainWindow(self): ...
def ChangeToPrefWindow(self): self.prefwindow.show() self.hide()
class PrefWindow(QWidget): def __init__(self, parent=None): super().__init__() self.parent = parent ... self.createPrefWindow()
def ChangeToMainWindow(self): ...
def createPrefWindow(self): ...
class CustomLineEdit(QLineEdit): clicked = pyqtSignal()
def mousePressEvent(self, QMouseEvent): self.clicked.emit()
class Keypad_Window_New(QDialog): def __init__(self, num=0, parent=None): super().__init__(parent) self.parent = parent ...
TestContrl.py ******************************************************************* from PyQt5.QtCore import * from .GPIOControl import GPIOControl
class WorkerSignals(QObject): signal_Update_Label = pyqtSignal()
class TestControl(QRunnable): signals = WorkerSignals()
def __init__(self, parent=None): super().__init__() self.parent = parent ...
******************************************************************* GPIOContrl.py ******************************************************************* class GPIOControl: def my_print(self, args): if print_allowed == 1: print(args)
def __init__(self): ...
participants (1)
-
Mohsen Owzar