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!