ImportError: impossible d'importer nom MAXREPEAT avec cx_Freeze
Je suis en cours d'exécution dans un problème avec cx_Freeze
lors de l'exécution d'une application figée (fonctionne très bien dégelé).
Lors de l'exécution du programme, les résultats dans la suite de l'exī:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
exec code in m.__dict__
File "PythonApp/mainframe.py", line 3, in <module>
File "/usr/local/lib/python2.7/site-packages/dbus/__init__.py", line 103, in <module>
from dbus._dbus import Bus, SystemBus, SessionBus, StarterBus
File "/usr/local/lib/python2.7/site-packages/dbus/_dbus.py", line 39, in <module>
from dbus.bus import BusConnection
File "/usr/local/lib/python2.7/site-packages/dbus/bus.py", line 39, in <module>
from dbus.connection import Connection
File "/usr/local/lib/python2.7/site-packages/dbus/connection.py", line 27, in <module>
import threading
File "/usr/local/lib/python2.7/threading.py", line 44, in <module>
module='threading', message='sys.exc_clear')
File "/usr/local/lib/python2.7/warnings.py", line 57, in filterwarnings
import re
File "/usr/local/lib/python2.7/re.py", line 105, in <module>
import sre_compile
File "/usr/local/lib/python2.7/sre_compile.py", line 14, in <module>
import sre_parse
File "/usr/local/lib/python2.7/sre_parse.py", line 17, in <module>
from sre_constants import *
File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT
Je suis sur linux à l'aide d'une version de python 2.7.4 que j'ai construit à partir de la source, et l'importation de _sre
à partir d'une invite fonctionne et je peux accéder à la MAXREPEAT
constante.
C'est généralement cx_Freeze
pas en tirant à tout en library.zip
et peut être fixé par le nommer explicitement le module dans cx_Freeze
s de configuration contient la liste et la la solution à cette question similaire, mais qui n'a pas aidé ici.
Ce _sre
module semble bizarre.. il n'y a pas _sre
fichier dans le library.zip
généré mais à partir de cette erreur, il me semble qu'il peut trouver, cependant il ne peut pas importer ce symbole? Sûrement, si le module n'était pas là, il serait un "No module named _sre
d'erreur". Ou peut-être une importation circulaire mais _sre
talon n'a pas tout les importations.
Ce qui est bizarre c'est que je n'arrive pas à trouver le fichier soit - est-ce module créé dynamiquement lors de l'importation d'une certaine manière?
find /usr/local/lib/python2.7 -name "_sre*"
ne retourne rien, et de l'importation _sre
module ne dispose pas d'un __file__
attribut non plus, donc je n'ai aucune idée de comment assurez-vous qu'il est inclus comme il se présente comme un construit-dans.
>>> import _sre
>>> _sre.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
>>> repr(_sre)
"<module '_sre' (built-in)>"
C'est semblable à cette question aussi qui a demandé récemment, mais dans ce cas, il a été l'obtention de l'erreur dans l'ordinaire de l'interprète, mais pour moi c'est juste dans la cx_Freeze
.
modifier
De course python -v
semble comme il est intégré, donc je ne sais pas pourquoi cx_Freeze
peut manquer, ou comment je voudrais le réparer.
...
# /usr/local/lib/python2.7/re.pyc matches /usr/local/lib/python2.7/re.py
import re # precompiled from /usr/local/lib/python2.7/re.pyc
# /usr/local/lib/python2.7/sre_compile.pyc matches /usr/local/lib/python2.7/sre_compile.py
import sre_compile # precompiled from /usr/local/lib/python2.7/sre_compile.pyc
import _sre # builtin
# /usr/local/lib/python2.7/sre_parse.pyc matches /usr/local/lib/python2.7/sre_parse.py
import sre_parse # precompiled from /usr/local/lib/python2.7/sre_parse.pyc
...
OriginalL'auteur GP89 | 2013-04-30
Vous devez vous connecter pour publier un commentaire.
_sre
est un construit dans le module, donc il n'y a pas de fichier à inclure pour elle, mais elle n'a pas un MAXREPEAT attribut en Python 2.7.3:Ma meilleure supposition est que votre copie congelé quelque part la bibliothèque standard .py modules de Python 2.7.4, mais la compilation de l'interpréteur Python de 2.7.3 ou une version antérieure. Je vois que vous travaillez à partir d'
/usr/local
- c'est peut-être ramasser une version plus ancienne de/usr
.cx_Freeze
trouver l'interprète à utiliser? en regardant dans$PATH
? Je vais essayer de l'impression de la version de python numéro de la première ligne et de voir.Vous êtes sur le point par le chemin 🙂
print sys.version
sur la première ligne indique l'interprète dans la gelée version est2.7.3
. Je suppose que l'idée était que_sre
est importé sur l'interprète de démarrage dans2.7.4
mais dans mon application figée, elle a été lancée plus tard, quand je n'aiimport dbus
.Ok, je pensais que je voudrais effacer la version de
2.7.3
donc il ne serait pas le prendre.. mais il semble que je n'ai pas de version de2.7.3
! J'ai2.7.4
dans/usr/local
et2.6.6
dans/usr
. Aucune idée de comment cela pourrait-il se passer?Rien ne vient à l'esprit. Vous pouvez essayer de
locate libpython2.7
à chercher d'autres copies. Sinon, essayez d'effacer tout ce que vous pouvez qui n'est pas essentiel pour le système (c'est à dire ne pas retirer la copie de /usr - la plupart des systèmes Linux utilisent Python beaucoup), et puis de l'installer à nouveau.bugs.python.org/issue18050
OriginalL'auteur Thomas K
J'ai rencontré ce problème quand je l'ai juste mis à niveau de ubuntu 12.10 à 13.04, et je le fixe, il suffit de copier le fichier /usr/bin/python /chemin/vers/mon/env/bin/, et il a très bien fonctionné
cp /user/bin/python /path/to/my/env/bin/
ou, il y a une façon plus élégante de résoudre ce(référence):
mkvirtualenv <existing virtualenv name>
virtualenv <existing virtualenv name>
permet de mettre à jour le virtualenv sans l'aide de virtualenvwrapper.mkvirtualenv est parfait, merci. Dans le cas où quelqu'un est intéressé à ce sujet détruire et d'autres fichiers dans le virtualenv, il N'est PAS!!
Mise à niveau de ubuntu 12.10 à 13.04 et confronté à la même question. Couru virtualenv <virtualenv nom> sur le virtualenv et cela a résolu le problème. Merci.
OriginalL'auteur Johnny Zhao
Si tout le reste échoue, j'ai eu les choses en marche à l'aide de ceci: http://www.kiwisoft.co.uk/blog/2014/08/17/fixed-importerror-cannot-import-name-maxrepeat
OriginalL'auteur OrhanC1
J'ai eu le même problème récemment. Réglage LD_LIBRARY_PATH=
résolu le problème.
OriginalL'auteur Mikhail
J'ai été en utilisant cx_freeze 4.3.2 sur mon win 8 machine et c'est toujours montrant
ImportError: cannot import name MAXREPEAT with cx Freeze
si j'ai jamais essayé de congeler un non intégré dans le module, et une fois que j'ai téléchargé la version 4.3.1, il fonctionne, je suis en mesure de geler mon python 3.3 programmes sans le moindre problème.OriginalL'auteur PyBoy
J'ai eu des problèmes similaires sur windows 8 était juste un PYTHONPATH question. vérifiez que PYTHONPATH existe en tapant la commande suivante dans un python session:
si vous obtenez une erreur définir votre PYTHONPATH à l'aide de cette approche..
Comment ajouter le pythonpath dans windows 7?
OriginalL'auteur Benor