在Windows环境下为Python 2.5安装SSL模块

最近在捣腾Python,主要是因为Google App Engine比较诱人。
用官方的SDK,一开始装的是2.6,然后每次都会有很多提示deprecated,发现2.6对2.5的更新比较大,而且貌似在我机器上记不住用户名和密码。由于本人密码有点复杂,于是就去找了个2.5来装。
CPython官方的已经没有提供直接渠道来下载2.5的MSI文件了(2010.10.31更新,官方可以下载到2.5.4版本,http://www.python.org/download/releases/2.5.4/),于是用了ActivePython,但接下来按网上的教程(这篇这篇)安装时每次编译都报错。
教程的步骤是
1、先安装MinGW,注意把安装目录的bin目录加入到系统的path常量中
2、再去下载安装openssllibgw32c并解压到MinGW的文件夹里
3、下载Python 2.5的SSL模块的源代码。把setup.py里第152行的地址从C:\GnuWin32改为你安装MinGW的地址
4、如果机器上同时安装有Visual Studio 2003,可能需要强制使用MinGW编译。在Python安装文件夹的Lib\distutils目录里新建一个文件distutils.cfg,在里面填入
[build]
compiler=mingw32
或者在下一步启动编译时传入一个
-c mingw32参数强制指定MinGW
5、运行setup.py install即可,有上一步的强制则是setup.py install -c mingw32

但我始终在最后一步的编译过程中报错,提示很多类似undefined reference to `_imp___Py_NoneStruct'的错误。Google搜索后发现原来是ActivePython自带的文件有问题(链接),本来应该有的libpython25.a不存在了,还好有教程可以自己重新生成一个。
1、找到python25.dll(一般是在system32文件夹里)
2、列出函数导出表,建议用pexport(链接1链接2
3、运行pexports.exe python25.dll > python25.def
4、运行
dlltool --dllname python25.dll --def python 25.def --output-lib libpython25.a生成文件
5、最后复制到Python的
libs文件夹里即可

再重新setup.py install即可成功安装
在Python中import ssl一下看看是不是没报错了~~

类别:it疯言 查看评论
posted @ 2010-07-10 22:25  ayanamist  阅读(1942)  评论(0编辑  收藏  举报