【问题标题】:Python 3.4 is missing _ssl.pydPython 3.4 缺少 _ssl.pyd
【发布时间】:2015-11-04 10:54:00
【问题描述】:

环境: Ubuntu 10.04.4 LTS Python 3.4.3

我有一个可以在 Windows 上完美运行的 python 3.4 Flask HTTPS 服务器。我需要将其转移到现有的 Ubuntu 10.04.4 LTS 服务器。我在那里构建了 python 3.4 没有问题,但是当我运行我的网络服务器时它失败并出现错误:

Traceback (most recent call last):
  File "./server.py", line 3, in <module>
    from app import create_app
  File "/opt/license-server/app/__init__.py", line 10, in <module>
    from config import config
  File "/opt/license-server/config.py", line 9, in <module>
    class Config:
  File "/opt/license-server/config.py", line 25, in Config
    LDAP_TLS_VERSION = ssl.PROTOCOL_TLSv1_2
AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'

我使用 pyCharm 在 Windows 上进行了一些挖掘,以了解发生了什么,似乎 PROTOCOL_TLSv1_2 是在 _ssl.py 中定义的,我相信它来自 _ssl.pyd。 Ubuntu python 安装中既不存在 _ssl.py 也不存在 _ssl.pyd,这让我相信我在编译时缺少某些选项或某些东西,但我在 python 网站上找不到任何关于缺少什么或如何的参考获取 TLS-1.2 的东西。

谁能指点我正确的方向?

【问题讨论】:

    标签: python ssl python-3.4 ubuntu-10.04 tls1.2


    【解决方案1】:

    当您从源代码构建 Python 3.4 时,在构建结束时您会收到一份报告,说明哪些模块未构建。我敢打赌,没有构建 ssl 模块,因为您的 Ubuntu 安装没有安装 SSL 包。试试:

    sudo apt-get install libssl-dev openssl
    

    然后尝试重新构建您的 Python 3.4 并查看是否构建了 SSL 模块。

    【讨论】:

    • 感谢您的建议。 libssl-dev 和 openssl 已经安装并且是最新的。只是为了确保删除了构建文件夹,运行 ./configure 然后执行 make 来强制重建目标,我得到以下输出:Python 构建成功完成!未找到构建这些可选模块所需的位:_lzma 要找到必要的位,请在 setup.py 中的 detect_modules() 中查找模块名称。其中没有提及 OpenSSL,遗憾的是它仍然无法正常运行我在运行服务器时遇到同样的错误。
    • 看起来像 _ssl.cpython-34m.so 可能类似于正在根据构建日志构建的 windows pyd,但它似乎不包含我需要的内容。看起来我应该只是转移到 Windows 服务器并完成它。
    猜你喜欢
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    相关资源
    最近更新 更多