2015-12-04 1 views
11

Lorsque je tente d'importer hashlib dans un contexte, il jette cette erreur:objet « frozenset » est pas appelable

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 

Toute idée comment je peux résoudre ce problème? Je génère cette erreur simplement en ouvrant Terminal, exécutant python puis en tapant import hashlib.

+0

Essayez d'un répertoire de travail différent. –

+0

Cela n'a pas fonctionné. –

+0

Je l'ai en quelque sorte corrigé, en ce sens que j'ai supprimé un tas de fichiers hashlib.py. Cependant, maintenant il n'est pas installé et essayer de l'installer avec pip ou easy_install donne la même erreur frozenset. –

Répondre

8

J'ai eu le même problème hier, Hashlib n'a pas été installé et essayer de l'installer en utilisant pip donnerait cette erreur. Je l'ai corrigé en l'installant en utilisant easy_install à la place.

Aussi j'ai dû installer Scipy et Microsoft Visual C++ Compiler for Python 2.7 sous Windows, ils ont été requis pour Hashlib

+4

même erreur. 'easy_install hashlib' m'a aidé –

2

J'ai eu ce problème d'installation hashlib sur OSX (El Capitan), après un pépin a échoué l'installation de hashlib et re-attemp à l'aide easy_install . Après l'événement, j'ai eu des erreurs en appelant pip, et encore moins en chargeant hashlib.

cause racine était pip l'ajout d'un mauvais chemin du répertoire des œufs à mon sys.path et 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'] 

Pour fixer, vous pouvez supprimer le fichier référencé directement, dans mon cas:

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

J'ai essayé de supprimer uniquement la référence de répertoire, mais après avoir exploré here pour identifier le fichier site.py et site_packages.py appartenant à ma version python actuelle, qui définit vos chemins, puis regardé où site_packages.py chargeait ses chemins, il semble que la spécification La référence ific est ajoutée directement par pip? donc la seule solution de contournement que je pouvais penser était de potentiellement coder une ligne à la fin de site.py pour supprimer la référence, que j'ai vu sur d'autres threads.