2015-11-04 77 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