Подтвердить что ты не робот

Как установить модуль ssl Python в Windows?

В программе запуска Google App Engine Launcher:

ПРЕДУПРЕЖДЕНИЕ 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

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

4b9b3361

Ответ 1

Возьмите 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.

Ответ 2

Мне пришлось использовать следующую модификацию подхода 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, который ищет команда сборки.

Ответ 3

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

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

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

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

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

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

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

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

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

Ответ 4

Так как 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, нам нужно использовать версию 4.5.2 GCC.

После установки 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.