Je suis sur Solaris 10 (x86).
Jusqu'à présent, j'utilisais python2.6. Aujourd'hui, j'ai installé python2.7 et une erreur étrange s'est produite lors de l'importation de hashlib sur 2.7, mais pas sur 2.6:
Python 2.6:
root@myserver [PROD] # python2.6 -c "import hashlib"
root@myserver [PROD] #
Python 2.7:
root@myserver [PROD] # python2.7 -c "import hashlib"
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha512
Je ne comprends pas pourquoi j'ai cette erreur car j'essaie l'importation SUR LA MÊME MACHINE.
Merci d'avance pour votre aide!
Le package python2.7 dépend du libssl1_0_0
package (bibliothèques d'exécution openssl_1.0).
Je l'ai installé et ajouté le /usr/local/ssl/lib
répertoire dans $LD_LIBRARY_PATH
variable d'environnement.
Et maintenant ça marche parfaitement! :)
Vous pouvez utiliser la commande ci-dessous et vérifier quelles bibliothèques sont manquantes,
ldd /path/to/Python-Library/_hashlibmodule.so
par exemple
ldd /usr/local/lib/python2.7/_hashlibmodule.so
Si vous obtenez une sortie comme ci-dessous, cela signifie que vous manquez les bibliothèques openssl nécessaires
linux-vdso.so.1 => (0x00007fffd6f6a000)
libssl.so.6 => not found
libcrypto.so.6 => not found
libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007ffb18b54000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffb18937000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffb185a2000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ffb1839e000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007ffb1819b000)
libm.so.6 => /lib64/libm.so.6 (0x00007ffb17f16000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e0a000000)
même erreur pour moi. Mon cas était un virtenv
copié me donnant cette erreur sur un nouveau serveur. La valeur par défaut python fonctionnait.
J'ai utilisé
python2.7 -v -c "import hashlib" 2> output.txt
vous devriez voir quelque chose comme cette ligne ci-dessous dans votre output.txt
:
import hashlib # precompiled from hashlib.pyc
dlopen("/path/to/virtenv/lib/python2.7/lib-dynload/_hashlib.so", 2);
ldd /path/to/virtenv/lib/python2.7/lib-dynload/_hashlib.so
...
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
...
Donc, ce que j'ai fait, c'est simplement:
cp /usr/lib/python2.7/lib-dynload/_hashlib.so /*path-to-virtenv*/manager/lib/python2.7/lib-dynload/_hashlib.so