Heim > Artikel > Backend-Entwicklung > Warum wirft Python 3.6.1 „AttributeError: Module \'enum\' Has No Attribute \'IntFlag\'?\“
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!