如何在Windows上安装Python ssl模块?
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
我该怎么办?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
获取 openssl 和 libgw32c 来自 gnuwin32 项目的软件包(下载“开发人员文件”!)并将它们解压到安装 gnuwin32 的位置 - 或者如果您还没有 gnuwin32 工具,您可以将其解压缩到任何位置(例如“C:\Program Files\gnuwin32”)。在“setup.py”文件中输入gnuwin32目录(替换第154行中的“C:\Utils\GnuWin32”)。
然后您就可以毫无问题地构建
ssl
模块。我自己测试了它,使用GCC“4.3.2-tdm-2 mingw32”并使用命令行setup.py build -cmingw32
(-cmingw32
强制MinGW,因为我也安装了微软的编译器)。成功构建后执行setup.py install
来安装ssl
。Grab the openssl and libgw32c packages from the gnuwin32 project (download the "Developer files"!) and extract them where you installed gnuwin32 - or if you don't have gnuwin32 tools yet, you can extract it anywhere (e.g. "C:\Program Files\gnuwin32"). Enter the gnuwin32 directory in the "setup.py" file (replace "C:\Utils\GnuWin32" in line 154).
Then you can build the
ssl
module without problems. I tested it myself, using GCC "4.3.2-tdm-2 mingw32" and with the command linesetup.py build -cmingw32
(-cmingw32
forces MinGW as I also have Microsoft's compiler installed). Executesetup.py install
after the successful build to installssl
.我必须使用对 AndiDog 的方法进行以下修改:
如果没有 --skip-build 选项,安装将尝试再次构建并再次抱怨 MSVC:
另外,最初在使用构建命令时我遇到了很多这样的错误:
这是因为我最初安装的是 64 位版本的 Python 2.5.4 (python-2.5.4.amd64.msi)。我删除了它并安装了 32 位版本 (python-2.5.4.msi)。这包括构建命令正在查找的 libpython25.a 文件。
I had to use the following modification of AndiDog's approach:
Without the --skip-build option, the install would try to build again and complain about MSVC again:
Also, initially when using the build command I had a lot of errors like this:
This was because I had originally installed the 64bit version of Python 2.5.4 (python-2.5.4.amd64.msi). I removed that and installed the 32bit version (python-2.5.4.msi). This includes the libpython25.a file which the build command was looking for.
我使用了 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文件夹的路径添加到你的环境变量“path”中。
块引用
gnuwin32 项目中的 openssl 和 libgw32c 软件包(下载“开发人员文件”!)并解压它们位于您安装 gnuwin32 的位置 - 或者如果您还没有 gnuwin32 工具,您可以将其解压到任何位置(例如“C:\Program Files\gnuwin32”)。进入ssl库文件的“setup.py”中的gnuwin32目录(替换第154行的“C:\Utils\GnuWin32”)。
运行
python setup.py build -cmingw32
(最简单的方法是启动cmd并导航到ssl库提取到的目录)-这将编译ssl库运行
python setup.py install --skip-build
来安装它应该可以了。
事实上,我很惊讶他们这些年来都没有设法将 ssl 库添加到 App Engine sdk 或 python 安装程序中,可能人们不使用它。
I used AndiDog's and Saxon Druce answers which are 100% correct but might need some clarification for inexperienced users like me:
This is for Windows users only.
Install python 2.5.2 32 bit - it was essential for me as i have x64 system and I first installed python 2.5.2 x64 and the proposed solution did not work for me at all, so 32 bit it is.
Install GCC - http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/tdm-gcc-4.5.2.exe/download, I used the latest version, do not forget to select the option add to PATH variable while installing, or you will have to add the path to the GCC bin folder to your environment variable "path" yourself.
run
python setup.py build -cmingw32
(the easiest way is to fire cmd and navigate to the directory where ssl library was extracted to) - this will compile ssl libraryrun
python setup.py install --skip-build
to install itThat should do it.
I am actually surprised that they did not manage to add ssl library to app engine sdk or python installer in all this years, may be people do not use it.
由于 TDM-GCC 4.6.1 于 2011 年 9 月发布。即使使用 tdm-gcc-4.5.2.exe,TDM-GCC 安装程序也会下载最新的 GCC 版本 (4.6.1)。 GCC 4.6.1 将导致 GCC 构建错误“错误:无法识别的命令行选项'-mno-cygwin'”这是因为 -mno-cygwin 在 GCC 4.6.1 中已被弃用。为了针对 python 2.5 编译 ssl 包,我们需要使用 GCC 版本 4.5.2。
安装 TDM-GCC 后,您需要按照 @BanditoBunny 的说明执行额外的步骤。
3.1 从 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。
Since TDM-GCC 4.6.1 was released in September 2011. TDM-GCC installer will download the lastest GCC version (4.6.1) even though the tdm-gcc-4.5.2.exe is used. GCC 4.6.1 will cause GCC build error "error: unrecognized command line option '-mno-cygwin'" This is because -mno-cygwin become deprecated in GCC 4.6.1. In order to compile ssl package against python 2.5 we need to use GCC version 4.5.2.
After installing TDM-GCC you need to do extra step from the instruction by @BanditoBunny.
3.1 Download gcc-4.5.2-tdm-1-core.zip from 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. Unzip the file into the MinGW32 folder.
3.2 Go to the SSL folder then open a command prompt there. Check GCC version (using gcc --version) to make sure it uses version 4.5.2. Then continue with step 4.
我已将所有说明汇编在一处,以方便人们的生活。
http://waqassabbir.tumblr .com/post/18010535789/ssl-module-for-python-2-5-installation-windows-only
I've compiled all the instructions at one place to make people's life easy.
http://waqasshabbir.tumblr.com/post/18010535789/ssl-module-for-python-2-5-installation-windows-only