Python "pip install " is failing with AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

Viewed 45396

$ sudo pip install --upgrade pyOpenSSL

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 9, in <module>
load_entry_point('pip==8.1.1', 'console_scripts', 'pip')()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 558, 
in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 
2682, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 
2355, in load
return self.resolve()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 
2361, in resolve
 module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python2.7/dist-packages/pip-8.1.1-
 py2.7.egg/pip/__init__.py", line 16, in <module>
from pip.vcs import git, mercurial, subversion, bazaar  # noqa
 File "/usr/local/lib/python2.7/dist-packages/pip-8.1.1-
 py2.7.egg/pip/vcs/mercurial.py", line 9, in <module>
from pip.download import path_to_url
File "/usr/local/lib/python2.7/dist-packages/pip-8.1.1-
py2.7.egg/pip/download.py", line 39, in <module>
from pip._vendor import requests, six
File "/usr/local/lib/python2.7/dist-packages/pip-8.1.1-
py2.7.egg/pip/_vendor/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/usr/local/lib/python2.7/dist-packages/pip-8.1.1-
  py2.7.egg/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py", 
line 
54, in <module>
 import OpenSSL.SSL
   File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in 
  <module>
    from OpenSSL import rand, crypto, SSL
    File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in 
<module>
 SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

I am unable to Uninstall " pip uninstall pyopenssl "

Using pip gets me this error.

Thanks in advance.

Additional Details:

I am using

Distributor ID: Ubuntu Description: Ubuntu 15.10 Release: 15.10 Codename: wily

4 Answers

I ran into this issue as well. The solution proposed to run pip doesn't work because pip is broken too! I found this solved it for me:

sudo python -m easy_install --upgrade pyOpenSSL

This installed version 17.3.0 which was an upgrade to the (stock python-openssl on xenial) version ?0.15.1?. Note the massive change in version it could be they dropped the leading 0. in later versions.

Anyway, after that, pip and ansible started to work again.

Below method worked for me, I am using Ubuntu 20.04 and wanted to install Objection for Runtime manipulation and dynamic analysis of iOS apps.

Short Background:

I noticed that when I fired pip3 install objection in terminal it gave me same error as you but the directory path was little bit different. In my case it was related to python3.8, so I did following things

Solution:

rm -rf /home/smshrimant/.local/lib/python3.8/site-packages/OpenSSL/

sudo rm -rf /usr/local/lib/python3.8/dist-packages/OpenSSL/
Related