paip. sip module implements API v10.0 to v10.1 but the PyQt4.QtCore module requires API v9.2

paip.RuntimeError: the sip module implements API v10.0 to v10.1 but the PyQt4.QtCore
module requires API v9.2


作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.csdn.net/attilax




现象:
运行eric5-5.3.7.zip      \ D:\eric5-5.3.7\eric\eric5.py




环境:
Python Version: 3.3.2




原因:  eric5需要PyQt4..以及PyQt4需要sip v9.2  ...但是python加载的sip版本是10.1
查看python加载的sip
\Lib\site-packages\sip.pyd     好像是最新的pyqt5带的.




解决:
因为我的项目用到的是QT5。。但是由于 eric5需要PyQt4。 
只好另外copy  D:/Python33到D:/Python334eric
下载PyQt4-4.10.3-gpl-Py3.3-Qt4.8.5-x32.exe.安装到D:/Python334eric
会自动重写 D:/Python334eric/\Lib\site-packages\sip.pyd 


运行
D:\Python334eric\Python.exe   D:\eric5-5.3.7\eric\eric5.pyw


/sip是什么
SIP是一个自动为C和C++库生成Python扩展模块的工具。为了方便开发PyQt,SIP于1998被“Riverbank Computing”公司创造出来。不过,SIP不专用于PyQt,而是适用于所有的C和C++库。
使用SIP时,程序员首先要编写一个特殊的".sip"文件,使用类似于C++的语法在其中描述扩展模块所提供的类型与函数。然后用SIP将这个文件转化为C++代码。最终编译,与C、C++库链接后就成为Python扩展模块。".sip"文件类似于C、C++的头文件。根据需要,需要程序员用SIP定义的语法添加一些C++代码中没有的信息。因为SIP不支持完整的C++语法,所以不能直接使用C++的头文件作为".sip"文件。


sip.exe位置:D:\Python33\Lib\site-packages\PyQt5\sip.exe 
D:\Python33\Lib\site-packages\PyQt5\sip\下面是sip设置文件..例子:
D:\Python33\Lib\site-packages\PyQt5\sip\PyQt5\QtCore\qfile.sip


查看 当前sip版本. 
 D:/Python334eric/\Lib\site-packages\sip.pyd 
在找到
D:\Python33\Lib\site-packages\PyQt5\include\sip.h
line71--209     表明版本号是 10.1




---ImportError: No module named 'sip'
新不上D:\Python334eric\Lib\site-packages\sip.pyd  实际是个dll文件


---Failed to load platform plugin "windows". Available platforms are:
D:\Python334eric\Lib\site-packages\pyqt4 版本不对.




参考
Python SIP使用总结-Linux频道-中国IT实验室
Python SIP使用总结(Win&Linux通用) - sunny2038的专栏 - 博客频道 - CSDN.NET.htm



原文地址:https://www.cnblogs.com/attilax/p/15199466.html