Ich habe gerade Python 3.6.1 für MacOS X installiert
Wenn ich versuche, die Konsole auszuführen (oder etwas mit Python3 auszuführen), wird dieser Fehler ausgelöst:
AttributeError: module 'enum' has no attribute 'IntFlag'
$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Failed to import the site module
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 544, in <module>
main()
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 530, in main
known_paths = addusersitepackages(known_paths)
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 282, in addusersitepackages
user_site = getusersitepackages()
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 258, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 248, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 601, in get_config_var
return get_config_vars().get(name)
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 580, in get_config_vars
import _osx_support
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", line 4, in <module>
import re
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
Die Klasse IntFlag existiert in enum.py. Warum wird der AttributeError ausgelöst?
python
python-3.x
enums
python-3.6
attributeerror
BryanWheelock
quelle
quelle
enum.py
zufällig einen Dateinamen in Ihrem Arbeitsverzeichnis?enum.py
in Ihrem Arbeitsverzeichnis gibt-I
Option auszuführen , Site-Pakete und Umgebungsvariablen zu ignorieren und / oder-v
ausführliche Nachrichten über ImporteAntworten:
Dies
enum
liegt daran, dass Sie nicht das Standardbibliotheksmodul sindenum
. Sie haben wahrscheinlich das Paketenum34
installiert.Eine Möglichkeit, dies zu überprüfen, besteht darin, die Immobilie zu inspizieren
enum.__file__
Seit Python 3.6 ist die enum34-Bibliothek nicht mehr mit der Standardbibliothek kompatibel. Die Bibliothek ist ebenfalls nicht erforderlich, sodass Sie sie einfach deinstallieren können.
Wenn Sie den Code benötigen, um auf Python-Versionen <= 3.4 und> 3.4 ausgeführt zu werden, können Sie versuchen, ihn
enum-compat
als Voraussetzung zu verwenden. Es wird nurenum34
für ältere Python-Versionen ohne die Standardbibliotheksaufzählung installiert .quelle
ipython2 --> traitlets --> enum34
. (Leiderenum34
ist in.../2.7/site-packages/enum
nicht installiert.../2.7/site-packages/enum34
- um Ärger bitten.)Skipping enum34 as it is not installed
.. Ich benutze 3.7print(enum.__file__)
ich folgendes bekomme :/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/enum.py
. Bedeutet das, dass ich eine Standardbibliothek habeenum
und nichtenum34
? Edit: Ja,pip uninstall enum34
gab mirSkipping enum34 as it is not installed.
jupyter notebook
.Ich bin mir nicht sicher, ob Sie dieses Problem noch haben. Ich hatte ein ähnliches Problem und konnte es einfach durch Deaktivieren beheben
PYTHONPATH
$ unset PYTHONPATH
quelle
Settings->Build, Execution, Deployment->Console->Python Console
. Ich habe dann die Variable PYTHONPATH aus dem Feld mit dem Titel entferntEnvironment variables
. Hinweis: Zum Zeitpunkt dieses Schreibens habe ich PyCharm 2017.1.2 verwendet.Bei mir trat dieser Fehler nach der Installation der gcloud-Komponente app-engine-python auf, um sie in pycharm zu integrieren. Die Deinstallation des Moduls hat geholfen, auch wenn pycharm jetzt nicht in die App-Engine hochgeladen wird.
quelle
Wenn jemand hierher kommt, weil dieser Fehler beim Ausführen eines Python 3.7-Standardumgebungsprojekts der Google App Engine in PyCharm auftritt, müssen Sie nur noch etwas tun
Der Grund ist wie unter diesem Link
Ich denke, wenn wir ein Python 3.7-Projekt in PyCharm als Google App Engine-Projekt erstellen, versucht es immer noch, dasselbe zu tun wie für eine Python2.7-App
quelle
gcloud app deploy
. Das hat nichts mit Pycharm zu tun.HAFTUNGSAUSSCHLUSS: Bitte, @ juanpa.arrivillaga, wenn Sie diese Antwort sehen, können Sie gerne Ihre eigene schreiben und ich werde diesen Beitrag entfernen.
@ juanpa.arrivillaga hatte oben erwähnt :
Dies war das Problem, auf das ich gestoßen bin. Ich kannte das Enum-Modul auf Python zu diesem Zeitpunkt nicht und hatte meine Testdatei benannt
enum.py
.Da der Dateiname ist der Modulname, gab es einen Konflikt. Weitere Informationen zu Modulen finden Sie hier: https://docs.python.org/2/tutorial/modules.html
quelle
Das Deaktivieren von "Google App Engine Support" in den Pycharm-Einstellungen hat dieses Problem für mich behoben.
quelle
Die Antwort von Håken Lid hat mir geholfen, mein Problem zu lösen (danke!), In meinem Fall in Python3.7, in dem Flask in einem Docker-Container ausgeführt wird (
FROM tiangolo/uwsgi-nginx-flask:python3.7-alpine3.7
).In meinem Fall
enum34
wurde von einer anderen Bibliothek installiert (pip install smartsheet-python-sdk
). Für diejenigen, die mit einem ähnlichen Docker-Container-Problem kommen, ist hier meine letzte Docker- Datei (auf die entsprechenden Zeilen reduziert):quelle
Falls Sie PYTHONPATH sowohl für python2 als auch für python3 behalten müssen, können Sie Alias-Anweisungen schreiben, um den richtigen PYTHONPATH in Ihrem bash_profile festzulegen:
Codieren Sie Ihre Variablen PYTHONPATH2 und PYTHONPATH3 in Ihrem ~ / .bash_profile fest und fügen Sie am Ende die folgenden Aliase hinzu:
Mein
python
(bezieht sich auf Python2), da ich Python2 häufiger benutze.quelle
Wann immer ich dieses Problem bekam:
einfach zuerst führe ich den Befehl aus:
und dann meinen gewünschten Befehl ausführen und dann Erfolg haben.
quelle
Ich habe Folgendes verwendet:
pip install <required-library> --ignore-installed enum34
Suchen Sie während der Erstellung nach Warnungen , sobald Ihre erforderliche Bibliothek installiert ist. Ich habe einen Fehler wie diesen erhalten:
Using legacy setup.py install for future, since package 'wheel' is not installed
ERROR: pyejabberd 0.2.11 has requirement enum34==1.1.2, but you'll have enum34 1.1.10 which is incompatible.
Um dieses Problem zu beheben, führen Sie jetzt den folgenden Befehl aus :
pip freeze | grep enum34
. Dadurch erhalten Sie die Version der installierten enum34. Deinstallieren Sie es jetzt mitpip uninstall enum34
und installieren Sie die erforderliche Version als neupip install "enum34==1.1.20"
quelle
Ich habe Python 2 und Python 3 auf meinem Computer installiert. Aus irgendeinem seltsamen Grund habe ich im sys.path von Python 3 auch einen Pfad zum Sitepackage-Bibliotheksverzeichnis von Python2, wenn das re-Modul aufgerufen wird. Wenn ich Python 3 ausführe und enum importiere und
print(enum.__file__)
das System diesen Python 2-Pfad zu Site-Paketen nicht anzeigt. Ein sehr grober und schmutziger Hack ist es also, das Modul, in das Enum importiert wird, direkt zu ändern (folgen Sie den Traceback-Pfaden) und den folgenden Code unmittelbar vor dem Import von Enum einzufügen:Das hat mein Problem gelöst.
quelle
Die Installation von Version 1.1.8 von enum34 hat bei mir funktioniert.
Quelle: https://github.com/python-poetry/poetry/issues/1122
quelle
Sogar ich hatte dieses Problem beim Ausführen von python -m grpc_tools.protoc --version Musste PYTHONPATH bis Site-Pakete setzen und alle Eingabeaufforderungsfenster herunterfahren und es funktionierte. Hoffe, es hilft für gRPC-Benutzer.
quelle
Ich hatte dieses Problem in Ubuntu20.04 in Jupyterlab in meinem virtuellen Env-Kernel mit Python3.8 und Tensorflow 2.2.0. Fehlermeldung war
Problem war, dass in symbolischer Verknüpfung in / usr / bin / python auf python2 zeigte. Lösung:
Ich hoffe python2 wird bald sterben! Terveisin, Markus
quelle
Wenn Sie dieses Problem haben , wenn laufende Tests in
PyCharm
, stellen Sie sicher , dass das zweite Feld ist nicht markiert in den Konfigurationen.quelle
Wenn jemand dieses Problem hat , wenn man versucht Jupyter Kernel von einem virtualenv zu laufen, fügen Sie einfach richtig
PYTHONPATH
zukernel.json
Ihrem virtualenv Kernel (Python in Beispiel 3):quelle