Why Python 3.6.1 Triggers AttributeError: Module 'enum' Lacks 'IntFlag' Attribute
When attempting to execute Python 3.6.1, an obscure error may appear: "AttributeError: module 'enum' has no attribute 'IntFlag'." This perplexity arises despite the fact that the 'IntFlag' class is a known part of the enum.py module.
To unravel this enigma, we delve into the underlying source of the issue: a clash between the standard library module enum and a third-party package named enum34. If enum34 is present in the Python environment, it could be mistaken for the standard library enum module, causing the confusion.
To uncover this possibility, it's advisable to scrutinize the 'enum.__file__' property. The standard library enum module's location should resemble "/usr/local/lib/python3.6/enum.py." If it points elsewhere, this indicates a foreign module is in use.
To resolve the conflict, simply uninstall the enum34 package.
pip uninstall -y enum34
If the code requires compatibility across Python versions both less than or equal to 3.4 and greater than 3.4, consider utilizing enum-compat as a requirement. This package ensures that enum34 is installed only for older Python versions that lack the standard library enum module.
The above is the detailed content of Why Does Python 3.6.1 Throw an \'AttributeError: module \'enum\' has no attribute \'IntFlag\'\'?. For more information, please follow other related articles on the PHP Chinese website!