Maison > développement back-end > Tutoriel Python > Pourquoi Python 3.6.1 renvoie-t-il \'AttributeError : le module \'enum\' n'a pas d'attribut \'IntFlag\' ?\'

Pourquoi Python 3.6.1 renvoie-t-il \'AttributeError : le module \'enum\' n'a pas d'attribut \'IntFlag\' ?\'

Linda Hamilton
Libérer: 2024-11-04 14:45:52
original
831 Les gens l'ont consulté

Why Does Python 3.6.1 Throw

Pourquoi Python 3.6.1 renvoie « AttributeError : le module 'enum' n'a pas d'attribut 'IntFlag' ? »

Après l'installation de Python 3.6.1 pour macOS X, un tenter d'utiliser la console ou d'exécuter quoi que ce soit avec Python3 génère une erreur cryptique message :

AttributeError: module 'enum' has no attribute 'IntFlag'
Copier après la connexion

Analyse du problème

Curieux de savoir pourquoi cette erreur se produit, nous examinons le code en question :

<code class="python">class RegexFlag(enum.IntFlag):</code>
Copier après la connexion

Le La classe RegexFlag hérite de enum.IntFlag, qui est membre du module enum. Cependant, nous rencontrons l'erreur car Python renvoie une exception AttributeError, indiquant que l'énumération du module ne dispose pas de l'attribut IntFlag.

Solution

En approfondissant le problème, nous découvrons que le module enum utilisé peut ne pas être celui de la bibliothèque standard. Le package enum34, conçu pour les versions Python inférieures à 3.5, peut être installé avec l'énumération de la bibliothèque standard dans Python 3.6.1.

La vérification de l'authenticité de l'énumération peut être effectuée en inspectant son chemin de fichier :

<code class="python">import enum
print(enum.__file__)</code>
Copier après la connexion

Si enum.__file__ ne pointe pas vers l'emplacement de la bibliothèque standard (par exemple, /usr/local/lib/python3.6/enum.py), alors le package enum34 est probablement la cause du problème.

Résolution

Pour rectifier le situation, désinstallez enum34 :

pip uninstall -y enum34
Copier après la connexion

Alternativement, si le code doit être exécuté sur les deux versions de Python avant 3.5 et supérieur à 3.5, pensez à utiliser le package enum-compat. Ce package installe enum34 uniquement pour les anciennes versions de Python dépourvues du module enum de la bibliothèque standard.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal