Как установить модуль 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
Что мне делать?
Ответы
Ответ 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.
Ответ 5
Я собрал все инструкции в одном месте, чтобы люди стали проще.
http://waqasshabbir.tumblr.com/post/18010535789/ssl-module-for-python-2-5-installation-windows-only