undefined reference to `_imp___Py_NoneStruct'
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,在里面填入
或者在下一步啟動編譯時傳入一個-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一下看看是不是沒報錯了~~
總結
以上是生活随笔為你收集整理的undefined reference to `_imp___Py_NoneStruct'的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows 7 旗舰版下无法安装 m
- 下一篇: 在latex中导入endnote中的参考