1. 程式人生 > >python 提示 AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

python 提示 AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

os: ubuntu 16.04
python: python 2.7.12

使用 http 提示無此命令,使用 apt install -y httpie 安裝後執行 http 報錯如下:

# http http://192.168.56.92:8008/patroni
Traceback (most recent call last):
  File "/usr/bin/http", line 9, in <module>
    load_entry_point('httpie==0.9.2', 'console_scripts', 'http')()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 487, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2728, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2346, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2352, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/dist-packages/httpie/__main__.py", line 6, in <module>
    from .core import main
  File "/usr/lib/python2.7/dist-packages/httpie/core.py", line 16, in <module>
    import requests
  File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 95, in <module>
    from urllib3.contrib import pyopenssl
  File "/usr/local/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 46, 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'

其實是 pyopenssl庫的問題,處理方法如下

# ls -l /usr/lib/python2.7/dist-packages/ | grep -i ssl
drwxr-xr-x  3 root root   4096 Jan  9 09:23 OpenSSL
drwxr-xr-x  2 root root   4096 Jan  9 09:23 pyOpenSSL-0.15.1.egg-info

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

# ls -l /usr/local/lib/python2.7/dist-packages/ |grep -i ssl
drwxr-sr-x  2 root staff   4096 Jan  9 09:27 OpenSSL
drwxr-sr-x  2 root staff   4096 Jan  9 09:27 pyOpenSSL-18.0.0.dist-info