Я только что установил Python 3.6.1 для MacOS X
Когда я пытаюсь запустить консоль (или запустить что-либо с Python3), выдается следующая ошибка:
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'
Класс IntFlag существует в enum.py. Итак, почему выбрасывается AttributeError?
python
python-3.x
enums
python-3.6
attributeerror
Брайан Уилок
источник
источник
enum.py
случайно имя файла в вашем рабочем каталоге?enum.py
в вашем рабочем каталоге-I
возможностью игнорировать пакеты сайтов и переменную окружения и / или с,-v
чтобы увидеть подробные сообщения об импортеОтветы:
Это потому, что ваш
enum
не является стандартным библиотечнымenum
модулем. Вероятно, у васenum34
установлен пакет .Один из способов проверить, так ли это, - осмотреть недвижимость.
enum.__file__
Начиная с python 3.6 библиотека enum34 больше не совместима со стандартной библиотекой. Библиотека также не нужна, поэтому ее можно просто удалить.
Если вам нужен код для запуска на версиях python <= 3.4 и> 3.4, вы можете попробовать
enum-compat
установить в качестве требования. Он устанавливается толькоenum34
для более старых версий python без перечисления стандартной библиотеки.источник
ipython2 --> traitlets --> enum34
. (К сожалению,enum34
установлен в.../2.7/site-packages/enum
not.../2.7/site-packages/enum34
-Skipping enum34 as it is not installed
.. Я использую 3,7print(enum.__file__)
дает мне это:/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/enum.py
. Значит ли это, что у меня есть стандартнаяenum
библиотека, а нетenum34
? Edit: да,pip uninstall enum34
дал мнеSkipping enum34 as it is not installed.
jupyter notebook
кстати, пытаюсь открыть .Не уверен, осталась ли у вас эта проблема. У меня была аналогичная проблема, и я смог решить ее, просто отключив
PYTHONPATH
$ unset PYTHONPATH
источник
Settings->Build, Execution, Deployment->Console->Python Console
. Затем я удалил переменную PYTHONPATH из поля с названиемEnvironment variables
. Примечание: на момент написания этой статьи я использовал PyCharm 2017.1.2.Для меня эта ошибка возникла после установки компонента gcloud app-engine-python для интеграции в pycharm. Удаление модуля помогло, даже если pycharm теперь не загружается в app-engine.
источник
Если кто-то приходит сюда из-за этой ошибки при запуске проекта стандартной среды Python 3.7 для движка приложений Google в PyCharm, то все, что вам нужно сделать, это
Причина в соответствии с этой ссылкой
Я думаю, когда мы создаем проект python 3.7 в PyCharm в качестве проекта движка приложений Google, он по-прежнему пытается делать то же самое, что и для приложения python2.7.
источник
gcloud app deploy
. Это не имеет ничего общего с пичармом.ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: @ juanpa.arrivillaga, если вы видите этот ответ, не стесняйтесь писать свой собственный, и я удалю этот пост.
@ juanpa.arrivillaga упомянул выше :
Это была проблема, с которой я столкнулся. В то время я не знал о модуле enum на Python и назвал свой тестовый файл
enum.py
.Поскольку имя файла является именем модуля, возник конфликт. Дополнительная информация о модулях здесь: https://docs.python.org/2/tutorial/modules.html
источник
Отключение «поддержки Google App Engine» в настройках pycharm устранило эту проблему для меня.
источник
Ответ Håken Lid помог решить мою проблему (спасибо!), В моем случае присутствовал в Python3.7, который запускает Flask в контейнере Docker (
FROM tiangolo/uwsgi-nginx-flask:python3.7-alpine3.7
).В моем случае
enum34
была установлена другая библиотека (pip install smartsheet-python-sdk
). Для тех, кто сталкивается с аналогичной проблемой контейнера Docker, вот мой последний Dockerfile (вырезанный до соответствующих строк):источник
Если вам нужно сохранить PYTHONPATH как для python2, так и для python3, вы можете написать операторы псевдонима, чтобы установить правильный PYTHONPATH в вашем bash_profile:
Жестко закодируйте переменные PYTHONPATH2 и PYTHONPATH3 в вашем ~ / .bash_profile и добавьте в конец следующие псевдонимы:
My
python
(относится к python2), так как я чаще использую python2.источник
Когда у меня возникала эта проблема:
просто сначала я запускаю команду:
а затем запустить желаемую команду и добиться в этом успеха.
источник
У меня сработала установка версии 1.1.8 enum34.
Источник: https://github.com/python-poetry/poetry/issues/1122
источник
pyinstaller
.Я сделал это с помощью.
pip install <required-library> --ignore-installed enum34
После установки необходимой библиотеки ищите предупреждения во время сборки. У меня такая ошибка:
Using legacy setup.py install for future, since package 'wheel' is not installed
ERROR: pyejabberd 0.2.11 has requirement enum34==1.1.2, but you'll have enum34 1.1.10 which is incompatible.
Чтобы устранить эту проблему в настоящее время выполнить команду:
pip freeze | grep enum34
. Это даст вам версию установленного enum34. Теперь удалите егоpip uninstall enum34
и переустановите требуемую версию какpip install "enum34==1.1.20"
источник
У меня на компьютере установлены Python 2 и Python 3. По какой-то странной причине у меня в sys.path Python 3 также есть путь к каталогу библиотеки sitepackage Python2, когда вызывается модуль re. Если я запускаю Python 3 и импортирую enum, и
print(enum.__file__)
система не показывает этот путь Python 2 к пакетам сайтов. Итак, очень грубый и грязный прием заключается в том, чтобы напрямую изменить модуль, в который импортируется перечисление (следуйте путям трассировки), и вставьте следующий код непосредственно перед импортом перечисления:Это решило мою проблему.
источник
Даже у меня была эта проблема при запуске python -m grpc_tools.protoc --version Пришлось установить PYTHONPATH до пакетов сайта и закрыть все окна командной строки, и это сработало. Надеюсь, это поможет пользователям gRPC.
источник
У меня была эта проблема в ubuntu20.04 в jupyterlab в моем виртуальном ядре env с python3.8 и tensorflow 2.2.0. Сообщение об ошибке было
Проблема заключалась в том, что символическая ссылка в / usr / bin / python указывала на python2. Решение:
Я надеюсь, что python2 скоро умрет! Тервейсин, Маркус
источник
Если вы с этой проблемой при запуске тестов в
PyCharm
, убедитесь , что второе окно является бесконтрольно в конфигурациях.источник
Если у кого-то возникла эта проблема при попытке запустить ядро Jupyter из virtualenv, просто добавьте исправления
PYTHONPATH
вkernel.json
свое ядро virtualenv (в примере Python 3):источник