为什么 Python 3.6.1 触发 AttributeError: Module 'enum' Lacks 'IntFlag' Attribute
当尝试执行 Python 3.6.1 时,可能会出现一个晦涩的错误:“AttributeError:模块‘enum’没有属性‘IntFlag’。”尽管“IntFlag”类是 enum.py 模块的已知部分,但这种困惑还是出现了。
为了解开这个谜团,我们深入研究问题的根本根源:标准库之间的冲突模块 enum 和名为 enum34 的第三方包。如果 Python 环境中存在 enum34,它可能会被误认为是标准库 enum 模块,从而导致混乱。
要发现这种可能性,建议仔细检查 'enum.__file__' 属性。标准库枚举模块的位置应类似于“/usr/local/lib/python3.6/enum.py”。如果它指向其他地方,则表明正在使用外部模块。
要解决冲突,只需卸载 enum34 包即可。
pip uninstall -y enum34
如果代码需要跨 Python 版本兼容,则更少大于或等于 3.4 且大于 3.4,请考虑使用 enum-compat 作为要求。此包确保仅针对缺少标准库枚举模块的较旧 Python 版本安装 enum34。
以上是为什么 Python 3.6.1 会抛出'AttributeError: module \'enum\' has no attribute \'IntFlag\'\”?的详细内容。更多信息请关注PHP中文网其他相关文章!