undefined reference to `_imp___Py_NoneStruct'
2015-11-15 22:45
489 查看
http://www.ithao123.cn/content-5989645.html
最近在捣腾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、再去下载安装openssl和libgw32c并解压到MinGW的文件夹里
3、下载Python 2.5的SSL模块的源代码。把setup.py里第152行的地址从C:GnuWin32改为你安装MinGW的地址
4、如果机器上同时安装有Visual Studio 2003,可能需要强制使用MinGW编译。在Python安装文件夹的Libdistutils目录里新建一个文件distutils.cfg,在里面填入
[build]
compiler=mingw32
或者在下一步启动编译时传入一个
5、运行setup.py install即可,有上一步的强制则是setup.py install -c mingw32
但我始终在最后一步的编译过程中报错,提示很多类似undefined reference to `_imp___Py_NoneStruct'的错误。Google搜索后发现原来是ActivePython自带的文件有问题(链接),本来应该有的libpython25.a不存在了,还好有教程可以自己重新生成一个。
1、找到
2、列出函数导出表,建议用pexport(链接1,链接2)
3、运行
最近在捣腾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、再去下载安装openssl和libgw32c并解压到MinGW的文件夹里
3、下载Python 2.5的SSL模块的源代码。把setup.py里第152行的地址从C:GnuWin32改为你安装MinGW的地址
4、如果机器上同时安装有Visual Studio 2003,可能需要强制使用MinGW编译。在Python安装文件夹的Libdistutils目录里新建一个文件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一下看看是不是没报错了~~
相关文章推荐
- cordova最新file和file-transfer插件问题
- css权重
- jQuery解决IE6图片不透明的问题
- 分享一个自己做的图片轮播的插件
- 前端知识体系
- HTML5之FileReader的使用
- 【LeetCode从零单刷】Different Ways to Add Parentheses
- git fetch, merge, pull, push需要注意的地方(转)
- JavaScript变量命名规则:匈牙利命名法
- JavaScript变量命名规则:匈牙利命名法
- 翻译作品js
- JQuery 实现简单的复选框树形结构图
- 告诉你CSS中 display:inline-block到底是个什么鬼
- JS—正则表达式
- JavaScript高级程序设计读书笔记—— 基本数据类型
- js 源码
- (Javascript经典案例) -- 捕获鼠标点击位置并将元素移动到该位置
- Swing 中拆分窗格基本使用JSplitPane
- JS知识点
- 构建前端工程