62 votes

Python "pip install" échoue avec AttributeError : 'module' object has no attribute 'SSL_ST_INIT'.

$ 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'

Je ne parviens pas à désinstaller " pip uninstall pyopenssl ".

En utilisant pip, j'obtiens cette erreur.

Merci d'avance.

Détails supplémentaires :

J'utilise

ID du distributeur : Ubuntu Description : Ubuntu 15.10 Version : 15.10 Nom de code : wily

0 votes

Voyant la même chose, j'ai mis à jour pip et maintenant je vois la même erreur. Je suis sur Ubuntu 16.04.02LTS Python 2.7.

0 votes

S'il vous plaît, montrez votre PYTHONPATH variable echo $PYTHONPATH .

138voto

delimiter Points 101

J'ai également rencontré ce problème. La solution proposée d'exécuter pip ne fonctionne pas car pip est aussi cassé ! J'ai trouvé ceci qui l'a résolu pour moi :

sudo python -m easy_install --upgrade pyOpenSSL

Ceci a installé la version 17.3.0 qui était une mise à jour de la version 0.15.1 (stock de python-openssl sur xenial). Notez le changement massif de version, il se pourrait qu'ils aient abandonné le premier 0. dans les versions ultérieures.

Bref, après ça, pip et ansible ont recommencé à fonctionner.

3 votes

Merci, ça a marché pour moi aussi. Et cette solution semble beaucoup plus correcte que de supprimer /usr/lib/python2.7/dist-packages/OpenSSL manuellement, quant à moi.

2 votes

Ou pour l'utilisation de python3 : sudo easy_install3 --upgrade pyOpenSSL

1 votes

Très utile... !

107voto

Severun Points 1758

J'ai fait ce qui suit, ce qui semble avoir corrigé l'erreur. Je ne suis pas sûr que ce soit la bonne méthode, mais cela a corrigé l'erreur sur ma machine :

J'ai d'abord sauvegardé les répertoires ci-dessous, je vous recommande de faire de même.

rm -rf /usr/lib/python2.7/dist-packages/OpenSSL
rm -rf /usr/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.egg-info
sudo pip install pyopenssl

Je n'ai pas pu le désinstaller car à chaque fois que j'ai lancé Pip, j'ai eu la même erreur que vous : L'objet 'module' ne possède pas d'attribut 'SSL_ST_INIT'. .

Après ce qui précède, mon pip fonctionne maintenant et, plus important encore, mon ansible fonctionne maintenant (ce qui était cassé par mes mises à jour précédentes).

Je ne suis pas sûr que cela fonctionnera sur votre système, et retirer des éléments de la bande, comme je l'ai fait, est au mieux risqué, donc en guise d'avertissement, je dirais, votre kilométrage peut varier avec ma réparation maladroite, soyez prudent !

0 votes

Cela a marché pour moi ! Même problème, votre solution l'a résolu

1 votes

Merci, ça marche ! Pour Mac, l'emplacement est ~/Library/Python/2.7/lib/python/site-packages

3 votes

Si vous utilisez Homebrew Python sur un Mac, les chemins à supprimer sont les suivants /usr/local/lib/python2.7/dist-packages/OpenSSL y /usr/local/lib/python2.7/dist-package/pyOpenSSL-* .

0voto

Smshrimant Points 112

La méthode ci-dessous a fonctionné pour moi, j'utilise Ubuntu 20.04 et je voulais installer Objection pour la manipulation du temps d'exécution et l'analyse dynamique des applications iOS.

Bref historique :

J'ai remarqué que lorsque j'ai tiré pip3 install objection dans le terminal, j'ai eu la même erreur que vous, mais le chemin du répertoire était un peu différent. Dans mon cas, c'était lié à python3.8 J'ai donc fait les choses suivantes

Solution :

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

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

-2voto

Puneet Joshi Points 51

La mise à niveau de pyOpenSSL vers 16.2.0 le corrige.

pip uninstall pyOpenSSL
pip install pyOpenSSL==16.2.0

Il y a un problème de compatibilité de version.

6 votes

Comme mentionné dans les commentaires sur d'autres réponses, cela ne fonctionne pas car toute invocation de pip déclenche l'erreur, même une uninstall .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X