Ich habe erfolgreich eine ausführbare Version (Py2exe, Pyinstaller) meiner Anwendung erstellt. Wenn ich versuche, die App von .exe auszuführen, erhalte ich einen Fehler wie folgt in der Protokolldatei:
Traceback (most recent call last):
File "CreateAS.pyw", line 8, in <module>
ImportError: cannot import name Publisher
Ich bin wirklich in diesem Teil stecken. Könntest du mir helfen?
Danke
Ich nehme an, dass Sie eine Version von wxPython verwenden, die >= 2.8.11.0
ist? Wenn ja, hat sich das Paket wx.lib.pubsub
geändert. Diese Seite beschreibt die Änderungen. Es gibt auch einen Thread in der wxPython Mailingliste hier , die darüber sprechen.
Damit das alles in meinem Projekt funktioniert, habe ich das folgende hier beschrieben Teil des obigen Mailinglisten-Threads. Ich fasse zusammen:
Die viel bessere Alternative (dh nein Hacks!) wenn du es hacken kannst (sorry!) ist es, das gleiche Messaging-Protokoll zu verwenden wie v1, aber in der neuesten API ist dies genannt "arg1":
%Vor%und ersetzen Sie alle Vorkommen von
"Publisher()." by "Publisher."
Dann musste ich in meinem setup.py
-Skript den Optionen folgendes hinzufügen:
Sie sollten jetzt in der Lage sein, eine ausführbare Datei mit der neuen Version von pubsub zu erstellen, aber mit der alten API. Vielleicht möchten Sie auch die neue v3 API von Pubsub ausprobieren. Wenn Ihr Projekt nicht zu groß ist, können Sie wahrscheinlich ohne zu viel Veränderung auskommen.
Ich habe einen Beispielcode verwendet, der wx.lib.pubsub verwendet hat, um von diesem Problem zu lernen und es auch zu finden.
Um dieses Problem einfach zu beheben, habe ich nur die Zeile geändert:
%Vor%An:
%Vor%Die akzeptierten Antworten haben Links, die es immer noch richtig machen, aber der Einfachheit halber habe ich diese Lösung hinzugefügt, weil die akzeptierte Lösung ein wenig verwirrend war.
Tags und Links python executable py2exe