OpenSSL в Python 2.5.2 не работает - PullRequest
1 голос
/ 21 декабря 2011

Я пытаюсь собрать Python 2.5.2 с SSL как отдельный двоичный файл, используя

. / Configure
make
make altinstall (с опцией -lssl и без нее)

Сначала я проверил, что у меня есть 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 и отредактировал следующие строки в Modules / Setup.dist:

_socket socketmodule.c
SSL = / usr / local / ssl
_ssl _ssl.c \
-DUSE_SSL -I $ (SSL) / включить -I $ (SSL) / включить / 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 (последний последний вызов):
Файл "<stdin>", строка 1, в <module>
ImportError: Нет модуляпо имени ssl

Я в основном из вещей, чтобы попробовать - был бы признателенЛюбая помощь или указатели относительно того, что проверять или что делать, чтобы это работало.Я понимаю, что в Python 2.7 уже есть SSL, но по другим причинам совместимости я должен использовать 2.5.Я использую Ubuntu 11.10 (Oneiric).Спасибо!

1 Ответ

0 голосов
/ 21 декабря 2011

Поддержка SSL в httplib.HTTPSConnection (и других) и модуль ssl - это две разные вещи.

Возможно, вы включили SSL для библиотек с поддержкой SSL.Тем не менее, нет модуля ssl для Python 2.5.Вместо этого вы можете использовать модуль OpenSSL, который предоставляет аналогичные функции.

Если вам нужен код, который зависит от модуля ssl или OpenSSL, вам может потребоваться разбить код нанемного.Например:

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

Тогда вам, возможно, придется различать, что вы кодируете, в зависимости от того, какой модуль был загружен.(Если вам нужен только Python 2.5, используйте import OpenSSL напрямую.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...