AttributeError: 模块 ‘enum’ 没有属性 ‘IntFlag’
AttributeError: module ‘enum’ has no attribute ‘IntFlag’
要解决“AttributeError: module ‘enum’ has no attribute ‘IntFlag’”,enum34
通过pip uninstall -y enum34
在终端中运行来卸载模块。
如果错误仍然存在,请确保您的项目中没有文件enum.py
。
enum34
模块,因为它可能会影响官方enum
模块。 卸载enum34
模块
在项目的根目录中打开终端并运行以下命令。
pip uninstall -y enum34 # 👇️ for python 3 pip3 uninstall -y enum34
现在尝试导入和使用模块Enum
中的类enum
。
from enum import Enum class Sizes(Enum): SMALL = 'sm' MEDIUM = 'md' LARGE = 'lg' print(Sizes.MEDIUM.name) # 👉️ MEDIUM print(Sizes.MEDIUM.value) # 👉️ md
您还可以使用
IntEnum类。
它与Enum相同,但它的成员是整数,并且可以在任何可以使用整数的地方使用。
from enum import IntEnum class Numbers(IntEnum): ONE = 1 TWO = 2 THREE = 3 print(Numbers.THREE) # 👉️ Numbers.THREE print(Numbers.THREE + 10) # 👉️ 13
确保你没有名为的本地文件enum.py
如果错误仍然存在,请确保您没有名为的本地文件,enum.py
因为它会影响enum
模块。
您可以访问__file__
导入模块的属性以查看它是否被本地文件隐藏。
import enum print(enum.__file__)
如果您有一个名为 的本地文件enum.py
,则输出将类似于以下内容。
# ⛔️ result if shadowed by local file # /home/borislav/Desktop/bobbyhadz_python/enum.py
If you don’t have a local file that shadows the enum
module, you should see
something similar to the following.
# ✅ result if pulling in the correct module # /usr/lib/python3.10/enum.py
# Unset the PYTHONPATH
environment variable
If none of the suggestions helped, try to unset the PYTHONPATH
environment
variable.
Open your terminal and run the following command.
unset PYTHONPATH
The PYTHONPATH
environment variable determines where the Python interpreter
looks for libraries.
Unsetting the variable sometimes fixes glitches on machines with multiple Python
versions.
# Additional Resources
You can learn more about the related topics by checking out the following
tutorials: