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

Google App Engine Launcher говорит мне:

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

Я загрузил пакет, и он содержал . Я побежал:

python setup.py install

и затем:

Python was built with Visual Studio 2003; blablabla use MinGW32

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

протокол SSL/_ssl2.c: 1561: error:' CRYPTO_LOCK ' undeclared (первое использование в этой функции)

ошибка: команда " gcc " не удалось со статусом выхода 1

Что делать?

5 ответов


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

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


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

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.) Я удалил это и установил версию 32bit (python-2.5.4.компания MSI.) Это включает в себя libpython25.файл, который искала команда build.


я использовал ответы 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 во время установки, или вам придется добавить путь к папке GCC bin в переменную среды "путь" самостоятельно.

  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. run python setup.py install --skip-build чтобы установить его

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

Я действительно удивлен, что им не удалось добавить библиотеку ssl в App engine sdk или Python installer за все эти годы, возможно, люди не используют ее.


поскольку 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.


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