I’m on Solaris 10 (x86).
Until now, I was using python2.6. Today, I installed python2.7 and I have a weird error occuring when importing hashlib on 2.7, but not on 2.6:
Python 2.6:
<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="14667b7b6054796d677166627166">[email protected]</a> [PROD] # python2.6 -c "import hashlib" <a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cbb9a4a4bf8ba6b2b8aeb9bdaeb9">[email protected]</a> [PROD] #
Python 2.7:
<a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1765787863577a6e647265617265">[email protected]</a> [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
I don’t understand why I have this error since I’m trying the import ON THE SAME MACHINE.
Thanks in advance for your help!
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The python2.7 package is dependent to the libssl1_0_0 package (openssl_1.0 runtime librairies).
I installed it, and added the /usr/local/ssl/lib directory in $LD_LIBRARY_PATH environnent variable.
And now it works perfectly! 🙂
Method 2
same error for me. My case was a copied virtenv giving me this error on a new server. The default python was working.
I used
python2.7 -v -c "import hashlib" 2> output.txt
you should see something like this line below in your 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
...
So what I did is simply :
cp /usr/lib/python2.7/lib-dynload/_hashlib.so /*path-to-virtenv*/manager/lib/python2.7/lib-dynload/_hashlib.so
Method 3
You can use below command and check which libraries are missing,
ldd /path/to/Python-Library/_hashlibmodule.so
e.g
ldd /usr/local/lib/python2.7/_hashlibmodule.so
If you get output like below, that means you are missing necessary openssl libraries
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)
Method 4
I know you’re using Solaris, but I’ve followed these instructions to install the old libssl1.0-dev and it worked on Ubuntu 20.04.
Edit file /etc/apt/sources.list and add this line to the end of it.
deb http://security.ubuntu.com/ubuntu bionic-security main
After that run:
sudo apt update && apt-cache policy libssl1.0-dev
Finally,
sudo apt-get install libssl1.0-dev
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0