AttributeError: 模块 ‘enum’ 没有属性 ‘IntFlag’

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.

main.py
# ✅ 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.

shell
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: