Pyinstaller und threading

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

Hallo,
ich habe ein script mit threading... im Idle läuft alles so weit.

wenn ich aber die .py mit pyinstaller eine .exe ertellen lasse funktioniert diese nicht.

ich vermute es liegt an threading

jemand ähnliche Erfahrung und eine Lösung dazu.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Streifenhase1: es liegt vermutlich daran, dass Du etwas falsch gemacht hast. Mehr sehe ich aber gerade nicht in meiner Glaskugel.
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Vermutungen und ein wages "funktioniert nicht" ist jetzt nicht die beste Ausgangssituation um dir zu helfen.
Du rufst doch auch nicht in der Werkstatt an und sagt: "Zuhause lief das Auto noch, aber jetzt nicht mehr. Ich glaube, es liegt an der Bundestraße. Haben Sie da mal eine Lösung?"

Quellcode und Fehlermldungen. Etwas Greifbares.

Aus Erfahrung kann dich dir sagen: Threading und pyinstaller sind gar kein Problem.
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

Ja da habt ihr natürlich recht...

Also ich habe festgestellt das es zwei Probleme gibt.

zum einen das erst mal für mich wichtigere ist das beim starten der exe das Modul Snap7 nicht gefunden wird.

jetzt hab ich schon touturials gelesen wie ich dieses hinzufüge aber bin gescheitert. hat jemand ein gutes und bestenfalls deutsches Tutorial wie ich es mit pyinstaller integrieren kann?

was das threading angeht scheint es daran zu liegen das ich die Threads or Programmende nicht beenden, da muss ich auch noch mal schauen.
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

hat keiner einen Tip für mich wie ich das "Snap7" Package in die exe mit pyinstaller bekomme?

Habe die ".spec" folgendes hinzugefügt..


a = Analysis(['Display.py'],
pathex=['C:\Python37-32\Scripts'],
binaries=[],
datas=[],
hiddenimports=["Snap7"],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)

leider findet es das "Snap7" Package nicht.

Installiert ist mit "pip install python_snap7"
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

In "hiddenimports" steckt ja "import" - und ich bin mir fast sicher, dass das Modul korrekt benennant wurde und mit einem _kleinen_ Buchstaben beginnt.
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

also hab es hin bekommen das "snap7" gefunden wird. allerdings startet die .exe nur wenn Python mit snap7 auf dem Rechner ist. also irgend etwas ist da noch nicht richtig oder
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Definitiv nicht, denn der ganze Sinn des Pyinstallers ist ja, dass man genau NICHT Python und was-weiss-ich-alles-noch installieren muss.
Streifenhase1
User
Beiträge: 90
Registriert: Dienstag 22. Mai 2018, 07:15

Das der Sinn von Pyinstaller ist das Python etc. nicht Installiert sein muss. Genau das ist ja das Problem das snap7 gefunden wird aber anscheinend nicht vollständig eingefügt wird.


so habe ich die .exe erstellt

Code: Alles auswählen

pyinstaller -y -F --hidden-import snap7 ".....py"
im Ablauf steht auch

"81477 INFO: Analyzing hidden import 'snap7'"

habe ich da was vergessen?

beim starten der exe kommt dann der Fehler.

"snap7.snap7exceptions.Snap7Exception: can't find snap7 library. If installed, try running ldconfig"
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich kenne snap7 nicht. Aber wenn es sich dabei um das Ding fuer Labview handelt, dann muss da wohl eine C-Library/DLL/.so Datei vorhanden sein. Ich habe mit pyinstaller keine grosse Erfahrung, doch fuer solche Sachen gibt's Rezepte. Da wirst du dir die Dokumentation anschauen muessen, wie man pyinstaller verklickert, dass es da mehr Dateien buendeln muss.
Antworten