2015-12-04 19 views
11

Quando si tenta di importare hashlib in qualsiasi contesto, getta questo errore:oggetto 'frozenset' non è richiamabile

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 

Qualsiasi idea di come posso risolvere questo? Sto generando questo errore semplicemente aprendo Terminale, eseguendo python e digitando import hashlib.

+0

Provare da una directory di lavoro diversa. –

+0

Che non ha funzionato. –

+0

Ho risolto il problema, in quanto ho rimosso un sacco di file hashlib.py. Tuttavia, ora non è installato e cercando di installarlo con pip o easy_install dà lo stesso errore di frozenset. –

risposta

8

Ho avuto lo stesso problema ieri, Hashlib non è stato installato e provare a installarlo utilizzando pip darebbe quell'errore. L'ho risolto installandolo usando easy_install.

Inoltre ho dovuto installare SciPy e Microsoft Visual C++ Compiler for Python 2.7 su Windows, sono stati richiesti per Hashlib

+4

stesso errore. 'easyhinstall hashlib' mi ha aiutato –

2

Ho avuto questo problema installando hashlib su OSX (El Capitan), dopo un fallito pip installazione di hashlib e re-attemp utilizzando easy_install . Dopo l'evento, ho avuto degli errori solo chiamando pip, per non parlare del caricamento di hashlib.

Root causa era pip l'aggiunta di un percorso di directory cattivo uovo alla mia sys.path e 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'] 

da risolvere, è possibile eliminare il file di riferimento direttamente, nel mio caso:

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

Ho provato a eliminare solo il riferimento alla directory, ma dopo aver esplorato here per identificare il file site.py e site_packages.py appartenente alla mia versione di Python corrente, che definisce i percorsi, quindi ho visto dove site_packages.py stava caricando i suoi percorsi da, sembra che la spec il riferimento è direttamente aggiunto da pip? quindi l'unica soluzione che potevo pensare era quella di codificare potenzialmente una riga alla fine di site.py per rimuovere il riferimento, che ho visto su altri thread.