Как установить модуль Python ssl в Windows? - PullRequest
19 голосов
/ 14 февраля 2010

Панель запуска Google App Engine сообщает мне:

ВНИМАНИЕ! Appengine_rpc.py:399 ssl модуль не найден. Без модуля ssl идентификация удаленного хоста не может быть проверена, и соединения не могут быть безопасными. Чтобы это исправить, пожалуйста, установите модуль ssl из http://pypi.python.org/pypi/ssl.

Я скачал пакет, и он содержал файл setup.py. Я побежал:

python setup.py install

и затем:

Python was built with Visual Studio 2003; blablabla use MinGW32

Затем я установил MinGW32, и теперь компиляция не работает. Конец ошибок компиляции содержит:

ssl / _ssl2.c: 1561: ошибка: необъявлено `CRYPTO_LOCK '(первое использование в этой функции)

ошибка: команда 'gcc' не выполнена с состоянием выхода 1

Что мне делать?

Ответы [ 5 ]

15 голосов
/ 14 февраля 2010

Получите пакеты openssl и libgw32c из проекта gnuwin32 (скачайте "Файлы разработчика"!) И извлеките их там, где вы установили gnuwin32 - или, если у вас нет gnuwin32 инструментов, но вы можете извлечь его где угодно (например, "C: \ Program Files \ gnuwin32"). Введите каталог gnuwin32 в файле «setup.py» (замените «C: \ Utils \ GnuWin32» в строке 154).

Тогда вы можете без проблем собрать модуль ssl. Я тестировал его сам, используя GCC "4.3.2-tdm-2 mingw32" и с командной строкой setup.py build -cmingw32 (-cmingw32 заставляет MinGW, так как у меня также установлен компилятор Microsoft). Выполните setup.py install после успешной сборки, чтобы установить ssl.

9 голосов
/ 22 мая 2010

Мне пришлось использовать следующую модификацию подхода AndiDog:

setup.py build -cmingw32
setup.py install --skip-build

Без опции --skip-build программа установки попытается собрать заново и снова будет выдавать жалобу на MSVC:

error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

Кроме того, изначально при использовании команды сборки у меня было много ошибок, подобных этой:

build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x1d): undefined reference to `_imp__PyImport_ImportModule'
build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x34): undefined reference to `_imp__PyObject_GetAttrString'
build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x53): undefined reference to `_imp__PyCObject_AsVoidPtr'

Это потому, что я изначально установил 64-битную версию Python 2.5.4 (python-2.5.4.amd64.msi). Я удалил это и установил 32-битную версию (python-2.5.4.msi). Это включает файл libpython25.a, который искала команда сборки.

2 голосов
/ 02 августа 2011

Я использовал ответы AndiDog и Saxon Druce, которые на 100% верны, но, возможно, для некоторых неопытных пользователей, таких как я, могут потребоваться некоторые пояснения:

  1. Это только для пользователей Windows.

  2. Установка Python 2.5.2 32-битная - это было важно для меня, так как у меня есть система x64, и я сначала установил python 2.5.2 x64, и предложенное решение у меня вообще не сработало, поэтому 32-битная .

  3. Установить GCC - http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/tdm-gcc-4.5.2.exe/download, Я использовал последнюю версию, не забудьте выбрать опцию добавить в переменную PATH во время установки, иначе вам придется добавить путь к папке bin GCC к вашему переменная окружения "путь" самостоятельно.

  4. Blockquote openssl и пакеты libgw32c из проекта gnuwin32 (загрузите «Файлы разработчика»!) И извлеките их там, где вы установили gnuwin32 - или, если у вас еще нет инструментов gnuwin32, вы можете извлечь их где угодно (например, « C: \ Program Files \ gnuwin32 "). Введите каталог gnuwin32 в «setup.py» файла библиотеки ssl (замените «C: \ Utils \ GnuWin32» в строке 154).

  5. run python setup.py build -cmingw32 (самый простой способ - запустить cmd и перейти в каталог, куда была извлечена библиотека ssl) - это скомпилирует библиотеку ssl

  6. запустить python setup.py install --skip-build, чтобы установить его

Это должно сделать это.

Я на самом деле удивлен, что им не удалось добавить библиотеку ssl в установщик ядра sdk или python для приложений за все эти годы, возможно, люди не используют ее.

1 голос
/ 21 февраля 2012

Я собрал все инструкции в одном месте, чтобы облегчить жизнь людям.http://waqasshabbir.tumblr.com/post/18010535789/ssl-module-for-python-2-5-installation-windows-only

1 голос
/ 16 декабря 2011

Поскольку TDM-GCC 4.6.1 был выпущен в сентябре 2011 года. Установщик TDM-GCC загрузит последнюю версию GCC (4.6.1), даже если используется файл tdm-gcc-4.5.2.exe. GCC 4.6.1 вызовет ошибку сборки GCC "ошибка: нераспознанная опция командной строки '-mno-cygwin'" Это потому, что -mno-cygwin устарела в GCC 4.6.1. Чтобы скомпилировать пакет ssl для python 2.5, нам нужно использовать GCC версии 4.5.2.

После установки TDM-GCC необходимо выполнить дополнительный шаг из инструкции @ BanditoBunny.

3.1 Загрузите gcc-4.5.2-tdm-1-core.zip из http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%204.5%20series/4.5.2-tdm-1%20SJLJ/gcc-4.5.2-tdm-1-core.zip/download. Распакуйте файл в папку MinGW32.
3.2 Перейдите в папку SSL и откройте там командную строку. Проверьте версию GCC (используя gcc --version), чтобы убедиться, что она использует версию 4.5.2. Затем перейдите к шагу 4.

...