2015-11-04 76 views
0

环境: 的Ubuntu 10.04.4 LTS 的Python 3.4.3的Python 3.4丢失_ssl.pyd

我有一个工作的Python 3.4瓶HTTPS服务器上的Windows运行完美。我需要将其转移到现有的Ubuntu 10.04.4 LTS服务器上。我已经建立了蟒蛇3.4上有没有问题,但是当我跑我的Web服务器失败,出现错误:

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的东西。

任何人都可以指出我正确的方向吗?

回答

0

从源代码构建Python 3.4时,在构建结束时会得到一个报告,说明哪些模块未构建。我敢打赌,ssl模块并没有构建,因为你的Ubuntu安装没有安装SSL软件包。尝试:

sudo apt-get install libssl-dev openssl 

然后尝试重建你的Python 3.4,看看SSL模块建造。

+0

感谢您的建议。 libssl-dev和openssl已经安装并且是最新的。只要确定删除了构建文件夹,运行./configure,然后使用make来强制重建目标,并获得以下输出:Python构建成功完成! 未找到构建这些可选模块的必要位: _lzma 要查找必需位,请在detect_modules()的setup.py中查找该模块的名称。其中没有提及OpenSSL,可悲的是它仍然无法运行我在运行服务器时遇到同样的错误。 – DelboyJay

+0

看起来像_ssl.cpython-34m.so它可能类似于Windows pyd是根据构建日志构建的,但它似乎并不包含我需要的东西。看起来我应该转移到Windows服务器,并完成它。 – DelboyJay