首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Python3.6.1抛出枚举:模块‘AttributeError’没有属性'IntFlag'?

为什么Python3.6.1抛出枚举:模块‘AttributeError’没有属性'IntFlag'?
EN

Stack Overflow用户
提问于 2017-03-31 01:37:01
回答 14查看 136.6K关注 0票数 166

我刚刚为MacOS X安装了Python3.6.1

当我尝试运行控制台(或使用Python3运行任何东西)时,抛出以下错误:

代码语言:javascript
运行
复制
  AttributeError: module 'enum' has no attribute 'IntFlag'

$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3  
Failed to import the site module  
Traceback (most recent call last):  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 544, in <module>  
    main()  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 530, in main  
    known_paths = addusersitepackages(known_paths)  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 282, in addusersitepackages  
    user_site = getusersitepackages()  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 258, in getusersitepackages  
    user_base = getuserbase() # this will also set USER_BASE  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 248, in getuserbase  
    USER_BASE = get_config_var('userbase')  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 601, in get_config_var  
    return get_config_vars().get(name)  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 580, in get_config_vars  
    import _osx_support  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", line 4, in <module>  
    import re  
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", line 142, in <module>  
    class RegexFlag(enum.IntFlag):  
AttributeError: module 'enum' has no attribute 'IntFlag'  

enum.py中存在类IntFlag。那么,为什么要抛出AttributeError呢?

EN

回答 14

Stack Overflow用户

发布于 2017-08-16 22:18:35

这是因为您的enum不是标准库enum模块。您可能已经安装了enum34包。

检查是否属于这种情况的一种方法是检查属性enum.__file__

代码语言:javascript
运行
复制
import enum
print(enum.__file__)  
# standard library location should be something like 
# /usr/local/lib/python3.6/enum.py

从Python3.6开始,enum34库不再与标准库兼容。该库也是不必要的,因此您可以简单地将其卸载。

代码语言:javascript
运行
复制
pip uninstall -y enum34

如果您需要在<=3.4和>3.4版本的python上运行代码,您可以尝试将enum-compat作为一个要求。它只为没有标准库枚举的旧版本的python安装enum34

票数 325
EN

Stack Overflow用户

发布于 2017-06-10 04:13:00

不确定您是否仍然存在此问题。我也遇到过类似的问题,只需取消设置PYTHONPATH即可解决

$ unset PYTHONPATH

票数 99
EN

Stack Overflow用户

发布于 2018-12-11 06:26:44

对我来说,这个错误是在安装gcloud组件app-engine-python以便集成到pycharm之后发生的。卸载模块很有帮助,即使pycharm现在没有上传到app-engine。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43124775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档