windows7/python3.3/virtualenv/cx_Freeze/Import Error/MAXREPEAT
Communiquons en série en utilisant Python! Quand cela devient, je pense qu'il est courant (probablement) d'utiliser Pyserial et Tkinter. Cependant, pour qu'un programme écrit en python soit utilisable par tout le monde, il est nécessaire de le convertir en une forme qui ne dépend pas de l'environnement Python. Par conséquent, nous utilisons une bibliothèque appelée cx_Freeze pour convertir les scripts python en fichiers exe. J'ai résumé les erreurs survenues à l'époque et leurs solutions.
Tout d'abord, cx_Freeze provoque une erreur dans le processus de conversion du fichier .py en .exe et le processus s'arrête. Il semble que TCL_PARAMETER et TK_PARAMETER requis pour utiliser tkinter ne peuvent pas être importés.
Import Error
TCL_PARAMETER
Vous pouvez ajouter le chemin manuellement. Dans mon cas, c'était un environnement virtuel utilisant virtualenv, donc je vais ajouter les deux lignes suivantes pour activate.bat.
set "TCL_LIBRARY=C:\Python33\tcl\tcl8.5"
set "TK_LIBRARY=C:\Python33\tcl\tk8.5"
Cela vous permettra de créer un fichier exe "temporaire". Cependant, il ne peut pas être exécuté (◠‿◠)
Si vous utilisez une certaine version de python, vous obtiendrez l'erreur suivante lors du lancement du fichier exe.
Cannot import traceback module.
Exception:cannot import name MAXREPEAT
Original Exception:cannot import name MAXREPEAT
Je n'ai pas du tout compris même si je faisais le tour, et j'ai lutté pendant plus de 3 heures. J'ai essayé diverses choses, mais j'écrirai d'abord la solution.
Si vous êtes une personne python3, passez à python3.3.5. (Je suis désolé pour les gens python2, mais je ne sais pas) MAXREPEAT ne peut pas être importé car il s'agit d'un bogue dans python3.3.0, donc sa mise à niveau le corrigera.
Je suis désolé, je l'ai écrit en anglais pour diverses raisons au début, mais il est difficile de le traduire en japonais, donc je vais le laisser en anglais ←
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