2015-12-04 10 views
11

При попытке импортировать hashlib в любом контексте, он выдает эту ошибку:«frozenset» объект не вызываемая

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.

+0

Попробуйте использовать другой рабочий каталог. –

+0

Это не сработало. –

+0

Я как-то исправил его, тем самым удалив кучу файлов hashlib.py. Однако теперь он не установлен и пытается установить его с помощью pip или easy_install дает ту же ошибку frozenset. –

ответ

8

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

Кроме того, я должен был установить SciPy и Microsoft Visual C++ Compiler for Python 2.7 на Windows, они были необходимы для Hashlib

+4

такой же ошибка. 'easy_install hashlib' помог мне –

2

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

Корневая причина была пип добавление плохой путь к каталогу яйца к моей 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 

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