объект 'frozenset' не вызывается

Когда я пытаюсь импортировать hashlib в любом контексте, он выдает эту ошибку:

File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.11-intel/egg/hashlib.py", line 115, in <module>
    """
TypeError: 'frozenset' object is not callable

Есть идеи, как я могу это решить? Я генерирую эту ошибку, просто открывая Терминал, запуская python и затем набирая import hashlib.


person Alex Beals    schedule 04.12.2015    source источник
comment
Попробуйте из другого рабочего каталога.   -  person Mike Müller    schedule 04.12.2015
comment
Я как бы исправил это, удалив кучу файлов hashlib.py. Однако теперь он не установлен, и попытка установить его с помощью pip или easy_install дает ту же ошибку Frozenset.   -  person Alex Beals    schedule 04.12.2015
comment
hashlib должен быть в стандартной библиотеке. Не нужно ничего устанавливать.   -  person Mike Müller    schedule 04.12.2015
comment
Похоже, у вас повреждена пользовательская установка Python. OS X 10.11 имеет встроенный Python 2.7 в /usr/bin/python и hashlib в /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py.   -  person 200_success    schedule 04.12.2015
comment
Я попытался импортировать его на новый Mac и получил эту ошибку. Что вы рекомендуете делать?   -  person Alex Beals    schedule 05.12.2015
comment
У меня такая же ошибка при установке hmac через pip.   -  person fx-kirin    schedule 09.03.2016


Ответы (5)


Вчера у меня была такая же проблема, Hashlib не был установлен, и попытка установить его с помощью pip выдавала эту ошибку. Я исправил это, установив его с помощью easy_install.

Также мне пришлось установить Scipy и компилятор Microsoft Visual C++ для Python 2.7 в Windows они требовались для Hashlib

person Lynob    schedule 01.04.2016

У меня была эта проблема с установкой hashlib на OSX (El Capitan) после неудачной установки pip для hashlib и повторной попытки с использованием easy_install. После события у меня были ошибки только при вызове pip, не говоря уже о загрузке hashlib.

Основная причина заключалась в том, что pip добавил путь к каталогу с плохими яйцами в мой sys.path и PYTHONHOME:

>>> import sys
>>> print sys.path
['', '/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg', '/Library/Python/2.7/site-packages/hashlib-20081119-py2.7-macosx-10.11-intel.egg', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']

Чтобы исправить, вы можете удалить файл, на который ссылаются напрямую, в моем случае:

rm /Library/Python/2.7/site-packages/hashlib-20081119-py2.7-macosx-10.11-intel.egg

Я попытался удалить только ссылку на каталог, но после изучения здесь чтобы идентифицировать файлы site.py и site_packages.py, принадлежащие моей текущей версии Python, которая определяет ваши пути, а затем посмотрели, откуда site_packages.py загружает свои пути, похоже, что конкретная ссылка добавляется непосредственно с помощью pip? поэтому единственным обходным путем, который я мог придумать, было потенциально жестко запрограммировать строку в конце site.py, чтобы удалить ссылку, которую я видел в других потоках.

person MariahOnFiah    schedule 18.05.2016

Лучшее решение, которое я нашел, это: https://stackoverflow.com/a/40259767/3689574

Это позволяет без проблем установить hashlib с pip.

person user3689574    schedule 26.10.2016

У меня было такое же сообщение на Fedora 29.

В итоге я установил с easy_install hashlib, однако сначала мне пришлось выполнить следующие шаги:

dnf install python2-devel
person Bert    schedule 05.04.2019

В Mac OS я исправил это, установив его easy_install hashlib вместо pip install hashlib

person Denis Petrov    schedule 26.03.2021