【问题标题】:pip install pyopenssl object has no attribute 'SSL_ST_INIT'pip install pyopenssl 对象没有属性“SSL_ST_INIT”
【发布时间】:2026-01-08 14:05:01
【问题描述】:

已经在这个论坛上搜索过相同的问题,但没有一个对我有用。我有一个 Ubuntu 18.04 和任何需要 OpenSSL 的 python 2.7 模块,我得到一个属性错误。 pip install 命令总是给出属性错误,但是 pip freeze 命令有效。

我尝试了(不成功)这些命令:

pip install -U pyopenssl

rm -rf /usr/lib/python2.7/dist-packages/OpenSSL

rm -rf /usr/lib/python2.7/dist-packages/pyOpenSSL-17.5.0.egg-info

pip install pyopenssl

python2.7 -m pip install --upgrade pip setuptools wheel

easy_install --upgrade pyOpenSSL
    $ pip install pyopenssl
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/__init__.py", line 104, in create_command
    module = importlib.import_module(module_path)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand, with_cleanup
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/req_command.py", line 16, in <module>
    from pip._internal.index.package_finder import PackageFinder
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module>
    from pip._internal.index.collector import parse_links
  File "/usr/local/lib/python2.7/dist-packages/pip/_internal/index/collector.py", line 14, in <module>
    from pip._vendor import html5lib, requests
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py", line 97, in <module>
    from pip._vendor.urllib3.contrib import pyopenssl
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/urllib3/contrib/pyopenssl.py", line 46, in <module>
    import OpenSSL.SSL
  File "build/bdist.linux-x86_64/egg/OpenSSL/__init__.py", line 8, in <module>
  File "build/bdist.linux-x86_64/egg/OpenSSL/SSL.py", line 118, in <module>
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

需要 OpenSSL 的命令示例

$ openstack
Traceback (most recent call last):
  File "/usr/bin/openstack", line 6, in <module>
    from openstackclient.shell import main
  File "/usr/lib/python2.7/dist-packages/openstackclient/shell.py", line 22, in <module>
    from osc_lib.api import auth
  File "/usr/lib/python2.7/dist-packages/osc_lib/api/auth.py", line 19, in <module>
    from keystoneauth1.loading import base
  File "/usr/lib/python2.7/dist-packages/keystoneauth1/loading/__init__.py", line 13, in <module>
    from keystoneauth1.loading import adapter
  File "/usr/lib/python2.7/dist-packages/keystoneauth1/loading/adapter.py", line 13, in <module>
    from keystoneauth1 import adapter
  File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 16, in <module>
    from keystoneauth1 import session
  File "/usr/lib/python2.7/dist-packages/keystoneauth1/session.py", line 25, 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 "build/bdist.linux-x86_64/egg/OpenSSL/__init__.py", line 8, in <module>
  File "build/bdist.linux-x86_64/egg/OpenSSL/SSL.py", line 118, in <module>
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

任何建议将不胜感激!

【问题讨论】:

  • 在你的 python 安装中,你应该有一个 Install Certificates.sh 可执行文件来运行。可能你需要它来获得SSL_ST_INIT 属性
  • Eric Jin,我找不到 Install Certificates.sh 文件。

标签: python linux python-2.7 ubuntu pip


【解决方案1】:

升级pyopenssl 应该可以解决问题。请尝试以下操作:

sudo python -m easy_install --upgrade pyOpenSSL

【讨论】:

    【解决方案2】:

    感谢 Lakshya,下面的命令成功了。

    python2.7 -m easy_install --upgrade pyOpenSSL
    

    【讨论】:

      最近更新 更多