windows7/python3.3/virtualenv/cx_Freeze/Import Error/MAXREPEAT
Lassen Sie uns seriell mit Python kommunizieren! Wenn es so wird, denke ich, dass es (wahrscheinlich) üblich ist, Pyserial und Tkinter zu verwenden. Damit ein in Python geschriebenes Programm von allen verwendet werden kann, muss es jedoch in eine Form konvertiert werden, die nicht von der Python-Umgebung abhängt. Daher verwenden wir eine Bibliothek namens cx_Freeze, um Python-Skripte in exe-Dateien zu konvertieren. Ich habe die damals aufgetretenen Fehler und ihre Lösungen zusammengefasst.
Erstens verursacht das Konvertieren von .py-Dateien in .exe mit cx_Freeze einen Fehler und beendet die Verarbeitung. Es scheint, dass TCL_PARAMETER und TK_PARAMETER, die für die Verwendung von tkinter erforderlich sind, nicht importiert werden können.
Import Error
TCL_PARAMETER
Sie können den Pfad manuell hinzufügen. In meinem Fall war es eine virtuelle Umgebung, in der virtualenv verwendet wurde. Daher werde ich die folgenden zwei Zeilen zu activate.bat hinzufügen.
set "TCL_LIBRARY=C:\Python33\tcl\tcl8.5"
set "TK_LIBRARY=C:\Python33\tcl\tk8.5"
Auf diese Weise können Sie eine "temporäre" Exe-Datei erstellen. Es kann jedoch nicht ausgeführt werden (◠‿◠)
Wenn Sie eine bestimmte Python-Version verwenden, wird beim Starten der exe-Datei die folgende Fehlermeldung angezeigt.
Cannot import traceback module.
Exception:cannot import name MAXREPEAT
Original Exception:cannot import name MAXREPEAT
Ich habe es überhaupt nicht verstanden, selbst wenn ich herumgegangen bin, und ich habe mehr als 3 Stunden lang gerungen. Ich habe verschiedene Dinge ausprobiert, aber ich werde zuerst die Lösung schreiben.
Wenn Sie eine Python3-Person sind, aktualisieren Sie auf Python3.3.5. (Es tut mir leid für Python2-Leute, aber ich weiß es nicht) MAXREPEAT kann nicht importiert werden, da es sich um einen Fehler in python3.3.0 handelt. Durch ein Upgrade wird dieser Fehler behoben.
Es tut mir leid, ich habe es zunächst aus verschiedenen Gründen auf Englisch geschrieben, aber es ist schwierig, es ins Japanische zu übersetzen, daher werde ich es auf Englisch belassen ←
check sre_constants.py, sre_parse.py, sre_compile.py As the first refferece (bottom of this article) says, I tried to modify sre_constants.py, but the file of python33 was different from that of python27, so I couldn't try this solution. Next, I tried the solution mentioned in the second referrence, but it also didn't work.
install cx_Freeze in other ways
reference
Recommended Posts