當前位置: 首頁>>技術教程>>正文


Python“pip install”失敗並出現AttributeError:’module’對象沒有屬性’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'

我無法卸載“pip uninstall pyopenssl”

使用pip讓我犯這個錯誤。

提前致謝。

額外細節:

我在用

經銷商ID:Ubuntu描述:Ubuntu 15.10發布:15.10代號:狡猾

最佳解決思路

我也遇到過這個問題。建議運行pip的解決方案不起作用,因為pip也被破壞了!我發現這解決了我:

sudo python -m easy_install --upgrade pyOpenSSL

這個安裝版本17.3.0是對xenial版本(庫存python-openssl)的升級版本?0.15.1?。請注意版本的巨大變化,它可能會在以後的版本中降低前導0.

無論如何,在那之後,pip和ansible再次開始工作。

次佳解決思路

我做了以下似乎修複錯誤,不確定它是否是正確的方法,但它確實修複了我的機器上的錯誤:

我首先備份了以下目錄,建議你這樣做。

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

我無法卸載它,因為每次運行pip我都會遇到同樣的錯誤:’module’對象沒有屬性’SSL_ST_INIT’。

在上麵我的點子現在工作,更重要的是我的ansible現在可以工作(這是我以前的更新打破了)。

不確定它是否適用於你的係統,並且像我一樣去掉帶外的東西,充其量是冒險的,所以作為警告,我會說,你的裏程可能因我的kludgy修複而有所不同,請謹慎使用!

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/6306.html,未經允許,請勿轉載。