Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wirft Python 3.6.1 „AttributeError: Module \'enum\' Has No Attribute \'IntFlag\'?\“

Warum wirft Python 3.6.1 „AttributeError: Module \'enum\' Has No Attribute \'IntFlag\'?\“

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 14:45:52754Durchsuche

Why Does Python 3.6.1 Throw

Warum Python 3.6.1 „AttributeError: Module ‚enum‘ Has No Attribute ‚IntFlag‘“ auslöst?“

Nach der Installation von Python 3.6.1 für macOS Der Versuch, die Konsole zu verwenden oder etwas mit Python3 auszuführen, führt zu einem kryptischen Fehler Nachricht:

AttributeError: module 'enum' has no attribute 'IntFlag'

Problemanalyse

Neugierig, warum dieser Fehler auftritt, untersuchen wir den betreffenden Code:

<code class="python">class RegexFlag(enum.IntFlag):</code>

Die Die Klasse RegexFlag erbt von enum.IntFlag, das Mitglied des Enum-Moduls ist. Wir stoßen jedoch auf den Fehler, weil Python eine AttributeError-Ausnahme auslöst, was darauf hinweist, dass der Modul-Enumeration das Attribut IntFlag fehlt.

Lösung

Wenn wir uns mit dem Problem befassen, entdecken wir das Das verwendete Enum-Modul ist möglicherweise nicht das der Standardbibliothek. Das enum34-Paket, das für Python-Versionen unter 3.5 entwickelt wurde, kann zusammen mit dem enum der Standardbibliothek in Python 3.6.1 installiert werden.

Die Überprüfung der Authentizität des enum kann durch Überprüfung seines Dateipfads erfolgen:

<code class="python">import enum
print(enum.__file__)</code>

Wenn enum.__file__ nicht auf den Standardspeicherort der Bibliothek verweist (z. B. /usr/local/lib/python3.6/enum.py), dann ist das Paket enum34 wahrscheinlich die Ursache des Problems.

Lösung

Um das zu beheben In diesem Fall deinstallieren Sie enum34:

pip uninstall -y enum34

Alternativ, wenn der Code zuvor auf beiden Python-Versionen ausgeführt werden muss auf 3,5 und größer als 3,5 sollten Sie die Verwendung des Pakets enum-compat in Betracht ziehen. Dieses Paket installiert enum34 nur für ältere Python-Versionen, denen das Enum-Modul der Standardbibliothek fehlt.

Das obige ist der detaillierte Inhalt vonWarum wirft Python 3.6.1 „AttributeError: Module \'enum\' Has No Attribute \'IntFlag\'?\“. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn