Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows上安装Python ssl模块?_Python_Google App Engine_Ssl_Installation_Python 2.5 - Fatal编程技术网

如何在Windows上安装Python ssl模块?

如何在Windows上安装Python ssl模块?,python,google-app-engine,ssl,installation,python-2.5,Python,Google App Engine,Ssl,Installation,Python 2.5,Google应用程序引擎启动器告诉我: 警告appengine_rpc.py:399未找到ssl模块。 如果没有ssl模块,则无法验证远程主机的身份,并且 连接可能不安全。要解决此问题,请从安装ssl模块 我下载了这个软件包,其中包含一个setup.py文件。我跑: python setup.py install 然后: Python was built with Visual Studio 2003; blablabla use MinGW32 然后我安装了MinGW32,现在编译不起作

Google应用程序引擎启动器告诉我:

警告appengine_rpc.py:399未找到ssl模块。 如果没有ssl模块,则无法验证远程主机的身份,并且 连接可能不安全。要解决此问题,请从安装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

我该怎么办?

从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

我不得不对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命令时,我遇到了很多类似这样的错误:

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。一个build命令正在查找的文件。

我使用了AndiDog和Saxon Druce的答案,这些答案100%正确,但对于像我这样没有经验的用户可能需要一些澄清:

  • 这仅适用于Windows用户

  • 安装Python2.5.2 32位-这对我来说很重要,因为我有x64系统,我第一次安装Python2.5.2 x64,建议的解决方案对我根本不起作用,所以它是32位的

  • 安装GCC-,我使用的是最新版本,安装时不要忘记选择addtopath变量选项,否则您必须自己将GCC-bin文件夹的路径添加到环境变量“PATH”中

  • 大宗报价 和gnuwin32项目的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——跳过构建来安装它

  • 应该这样做


    事实上,我很惊讶他们这么多年来都没有将ssl库添加到app engine sdk或python安装程序中,可能是因为人们没有使用它。

    自从2011年9月TDM-GCC 4.6.1发布以来。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中不推荐使用。为了针对Python2.5编译ssl包,我们需要使用GCC版本4.5.2

    安装TDM-GCC后,您需要按照@BandingObunny的指令执行额外的步骤

    3.1从下载gcc-4.5.2-tdm-1-core.zip。将文件解压缩到MinGW32文件夹中。

    3.2转到SSL文件夹,然后在那里打开命令提示符。检查GCC版本(使用GCC--version)以确保它使用版本4.5.2。然后继续第4步。

    我已经在一个地方编译了所有说明,以使人们的生活更轻松。

    您链接的openssl安装程序已经安装了libgw32c压缩文件中的部分(或全部)文件。即使按照您的说明进行操作,我在构建“ssl模块”时也遇到了同样的问题,我忘了提到您需要根据gnuwin32路径更改setup.py。编辑了答案。我还需要从ming32 libs folder中复制openssl和libgw32c libs,并从中获得帮助。当尝试构建时,我得到了
    命令gcc失败:没有这样的文件或目录
    。有什么想法吗?@Uri:看起来可能gcc没有安装,或者不在路径中。如果是,则可能只需要重新启动命令提示符(仅当打开命令提示符时才会拾取路径)。您可以在命令行中键入“set path”,检查mingw-bin目录(例如c:\mingw\bin)是否在您的路径中。我在win7x64中安装python,提示不使用ssl,安装setuptools,然后是pip,last:pip安装pyOpenSSL。@DienBell的评论为我解决了这个问题(Windows 8.1的干净安装,无编译环境),请参阅