2011-12-21 25 views
1

我試圖用SSL構建Python 2.5.2如使用的OpenSSL在Python 2.5.2不工作

./configure
make
make altinstall (with and without the -lssl option)

我沒有檢查第一,我有OpenSSL的同時定期和開發包一個單獨的二進制:

$ dpkg --get-selections | grep ssl
libio-socket-ssl-perl
libnet-ssleay-perl
libssl-dev
libssl-doc
libssl1.0.0
libssl1.0.0:i386
openssl
python-openssl
ssl-cert

我下載的Python 2.5.2和編輯在模塊/ Setup.dist下列行:

_socket socketmodule.c
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

有關於這個問題的衆多博客和這裏有兩個是我見過(我不能發佈超過2) - 說明我已經嘗試的過程: http://agiletesting.blogspot.com/2008/05/compiling-python-25-with-ssl-support.html
http://paltman.com/2007/11/15/getting-ssl-support-in-python-251

但是之後做配置,使和前面一樣,當我做的python2.5對其進行測試,出現這種情況:

>>> import ssl
Traceback (most recent call last):
File " <stdin >", line 1, in <module >
ImportError: No module named ssl

我基本上出來的東西嘗試 - 希望得到任何幫助或指針,以什麼檢查或東西做它使它工作。據我所知,Python 2.7已經有了SSL,但由於其他兼容性原因,我必須使用2.5。我正在使用Ubuntu 11.10(Oneiric)。謝謝!

回答

0

httplib.HTTPSConnection(和其他)和ssl模塊中的SSL支持是兩個不同的東西。

您可能已爲啓用了SSL的庫啓用了SSL。但是,Python 2.5沒有ssl模塊。相反,您可能需要使用OpenSSL模塊,該模塊提供了類似的功能。

如果您想要取決於sslOpenSSL模塊的代碼,您可能需要稍微分割代碼。例如:

try: 
    import ssl 
    USE_OPENSSL = False 
except ImportError: 
    import OpenSSL 
    USE_OPENSSL = True 

然後,您可能必須根據加載哪個模塊來區分您的代碼。 (如果你只需要Python 2.5,直接使用import OpenSSL)。

+0

感謝您的答案 - 但我試過在python2.5中導入OpenSSL,並且它也表示找不到模塊。 – user1109152 2011-12-21 16:45:53

+0

如果你在Ubuntu 11.10上,[python-openssl](http://packages.ubuntu.com/oneiric/amd64/python-openssl/filelist)不包含Python 2.5的文件。你也必須自己安裝它。 – Bruno 2011-12-21 18:12:56