www org mac python python-2.7 solaris solaris-10 hashlib

org - Error al importar hashlib con python 2.7 pero no con 2.6



python org download 2.7 15 (3)

El paquete python2.7 depende del paquete libssl1_0_0 (openssl_1.0 runtime librairies).

Lo instalé y agregué el directorio /usr/local/ssl/lib en la $LD_LIBRARY_PATH .

¡Y ahora funciona perfectamente! :)

Estoy en Solaris 10 (x86).

Hasta ahora, estaba usando python2.6. Hoy, instalé python2.7 y tengo un error extraño al importar hashlib en 2.7, pero no en 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

No entiendo por qué tengo este error ya que estoy intentando importarlo EN LA MISMA MÁQUINA .

¡Gracias de antemano por tu ayuda!


Puedes usar el siguiente comando y verificar qué bibliotecas faltan,

ldd /path/to/Python-Library/_hashlibmodule.so

p.ej

ldd /usr/local/lib/python2.7/_hashlibmodule.so

Si obtienes una salida como la de abajo, eso significa que faltan las bibliotecas de openssl necesarias.

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)


mismo error para mi Mi caso fue un virtenv copiado que me da este error en un nuevo servidor. El pitón por defecto estaba funcionando.

solía

python2.7 -v -c "import hashlib" 2> output.txt

Debería ver algo como esta línea a continuación en su 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 ...

Así que lo que hice es simplemente:

cp /usr/lib/python2.7/lib-dynload/_hashlib.so /*path-to-virtenv*/manager/lib/python2.7/lib-dynload/_hashlib.so