python 错误 AttributeError: module 'enum' has no attribute 'IntFlag' 解决方法
作者:迹忆客
最近更新:2022/06/20
浏览次数:
要解决“AttributeError: module 'enum' has no attribute 'IntFlag'”,需要在终端中运行 pip uninstall -y enum34
卸载 enum34 模块。 如果错误仍然存在,请确保我们的项目中没有 enum.py 文件。
首先要尝试卸载 enum34 模块,因为它可能会影响官方 enum 模块。
在项目的根目录中打开终端并运行以下命令。
$ pip 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
如果错误仍然存在,请确保您没有名为 enum.py 的本地文件,因为这会影响 enum 模块。
我们可以访问导入模块的 __file__
属性来查看它是否被本地文件隐藏。
import enum
print(enum.__file__)
# ⛔️ 被本地文件隐藏的结果
# /home/jiyik/Desktop/jiyik_python/enum.py
# ✅ 如果导入了正确的模块,结果为
# /usr/lib/python3.10/enum.py
如果没有任何建议有帮助,请尝试取消设置 PYTHONPATH
环境变量。
打开终端并运行以下命令。
$ unset PYTHONPATH
这有时会修复具有多个 Python 版本的机器上的故障。