„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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\'?\“

Veröffentlicht am 10.11.2024
Durchsuche:135

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 einer kryptischen Fehlermeldung:

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

Problem Analysis

Um herauszufinden, warum dieser Fehler auftritt, untersuchen wir den betreffenden Code:

class RegexFlag(enum.IntFlag):

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 Paket enum34, 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 Enums kann durch Überprüfen seines Dateipfads erfolgen:

import enum
print(enum.__file__)

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 das Ursache des Problems.

Lösung

Um das Problem zu beheben, deinstallieren Sie enum34:

pip uninstall -y enum34

Alternativ Wenn der Code auf beiden Python-Versionen vor 3.5 und höher als 3.5 ausgeführt werden muss, 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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3