windows7 / python3.3 / virtualenv / cx_Freeze / Erreur d'importation / MAXREPEAT

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.

Erreurs qui ont tendance à se produire lors de l'importation de tkinter lors de la conversion en exe

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é (◠‿◠)

Cas où le fichier exed ne peut pas être démarré

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.

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.


Ce que j'ai essayé

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 ←

  1. 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.

  2. install cx_Freeze in other ways

  1. change the version of Python the version of my Python3 was 3.3.0, so I changed it to 3.3.5, then it worked...

reference

  1. http://blog.goo.ne.jp/narisawanwan/e/4e936c8a519f3ec2eb1c10e25e8cb39d
  2. http://stackoverflow.com/questions/25316851/maxrepeat-importerror-when-using-cx-freeze-with-python-3-2

Recommended Posts

windows7 / python3.3 / virtualenv / cx_Freeze / Erreur d'importation / MAXREPEAT
Activer Python virtualenv sous Windows
Installez Python sur Windows + pip + virtualenv
Erreur d'importation même si Python est installé
Virtualenv ne fonctionne pas sur Python 3.5 (Windows)
Erreur d'importation: aucun module nommé "xxxxxx" dans Python3
Importer le module Python
Python sur Windows
environnement windows python
Installation de Python (Windows)
Importer un script python
python dans virtualenv
Synthétiser l'importation Python
[Note] Une histoire sur Anaconda et VScode ayant des problèmes avec une erreur d'importation de python
J'obtiens une erreur d'importation avec Python Beautiful Soup
Erreur Python non implémentée
Erreur python d'aujourd'hui: tué
Méthode d'installation Python Windows
Python depuis ou import
importation du module d'origine python
Python à partir de Windows 7
Liste des erreurs Python (japonais)
python basic ② sous windows
Installez python sur Windows
Importer tsv avec Python
[Python] Qu'est-ce que virtualenv
Installez Python (pour Windows)
[Python] pour une erreur d'instruction
Jusqu'à ce que vous créiez Python Virtualenv sur Windows et lanciez Jupyter
Importer un enregistrement de résolution d'erreur lorsque vous touchez du code Python à partir de VSCode