Python PyQt5';s PyQt5.sip文件不是由sip库生成的

Python PyQt5';s PyQt5.sip文件不是由sip库生成的,python,pyqt5,python-sip,Python,Pyqt5,Python Sip,我正在使用Visual Studio 2017在Windows 10上构建SIP 4.19.12和PyQt 5.11.2。我计划在Pythonx86 2.7.15中这样做。 我下载了上面的版本并提取了它们,用pip安装了enum34,配置了SIP python configure.py --sip-module PyQt5.sip --no-tools 这是win32上Python 2.7.15的SIP 4.19.12 PyQt5.sip模块将安装在 C:\Users\FiFo\AppData

我正在使用Visual Studio 2017在Windows 10上构建SIP 4.19.12和PyQt 5.11.2。我计划在Pythonx86 2.7.15中这样做。 我下载了上面的版本并提取了它们,用pip安装了enum34,配置了SIP

python configure.py --sip-module PyQt5.sip --no-tools
这是win32上Python 2.7.15的SIP 4.19.12

PyQt5.sip模块将安装在

C:\Users\FiFo\AppData\Local\Programs\Python27\Lib\site packages\PyQt5

sip.pyi存根文件将安装在

C:\Users\FiFo\AppData\Local\Programs\Python27\Lib\site packages\PyQt5

安装.sip文件的默认目录是

C:\Users\FiFo\AppData\Local\Programs\Python\Python27\sip。创造

sipconfig.py。。。正在创建顶级生成文件。。。创建sip代码

生成器生成文件。。。正在创建sip模块生成文件

使用设置x86构建环境

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
接着是nmake:

Microsoft(R)程序维护实用程序版本14.15.26729.0 版权所有(C)微软公司。版权所有

    cd siplib
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe
    cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -DNDEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSIP_MODULE_NAME=\"PyQt5.sip\" -I. -IC:\Users\FiFo\AppData\Local\Programs\Python\Python27\include -Fo @C:\Users\FiFo\AppData\Local\Temp\nm8C0F.tmp siplib.c apiversions.c
    cd siplib
    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe"
    copy /y sip.pyd C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyd
    1 file(s) copied.
    copy /y D:\opencv\sip-4.19.12\sip.pyi C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyi
    1 file(s) copied.
    C:\Users\FiFo\AppData\Local\Programs\Python\Python27\python.exe
Microsoft(R)程序维护实用程序版本14.15.26729.0 版权所有(C)微软公司。版权所有

    cd siplib
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe
    cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -DNDEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSIP_MODULE_NAME=\"PyQt5.sip\" -I. -IC:\Users\FiFo\AppData\Local\Programs\Python\Python27\include -Fo @C:\Users\FiFo\AppData\Local\Temp\nm8C0F.tmp siplib.c apiversions.c
    cd siplib
    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe"
    copy /y sip.pyd C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyd
    1 file(s) copied.
    copy /y D:\opencv\sip-4.19.12\sip.pyi C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyi
    1 file(s) copied.
    C:\Users\FiFo\AppData\Local\Programs\Python\Python27\python.exe
descriptors.c qtlib.c threads.c objmap.c voidptr.c array.c

int_convertors.c生成代码

    cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189 -DNDEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSIP_MODULE_NAME=\"PyQt5.sip\" -I. -IC:\Users\FiFo\AppData\Local\Programs\Python\Python27\include -Fo @C:\Users\FiFo\AppData\Local\Temp\nm9111.tmp bool.cpp

    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DLL /MANIFEST /MANIFESTFILE:sip.pyd.manifest /SUBSYSTEM:CONSOLE /INCREMENTAL:NO
/输出:sip.pyd@C:\Users\FiFo\AppData\Local\Temp\nm9170.tmp

库sip.lib和对象sip.exp

    mt -nologo -manifest sip.pyd.manifest -outputresource:sip.pyd;2
然后使用nmake安装安装包:

Microsoft(R)程序维护实用程序版本14.15.26729.0 版权所有(C)微软公司。版权所有

    cd siplib
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe
    cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -DNDEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSIP_MODULE_NAME=\"PyQt5.sip\" -I. -IC:\Users\FiFo\AppData\Local\Programs\Python\Python27\include -Fo @C:\Users\FiFo\AppData\Local\Temp\nm8C0F.tmp siplib.c apiversions.c
    cd siplib
    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe"
    copy /y sip.pyd C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyd
    1 file(s) copied.
    copy /y D:\opencv\sip-4.19.12\sip.pyi C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyi
    1 file(s) copied.
    C:\Users\FiFo\AppData\Local\Programs\Python\Python27\python.exe
安装

Microsoft(R)程序维护实用程序版本14.15.26729.0 版权所有(C)微软公司。版权所有

    cd siplib
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe
    cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -DNDEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DSIP_MODULE_NAME=\"PyQt5.sip\" -I. -IC:\Users\FiFo\AppData\Local\Programs\Python\Python27\include -Fo @C:\Users\FiFo\AppData\Local\Temp\nm8C0F.tmp siplib.c apiversions.c
    cd siplib
    "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\bin\HostX86\x86\nmake.exe"
    copy /y sip.pyd C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyd
    1 file(s) copied.
    copy /y D:\opencv\sip-4.19.12\sip.pyi C:\Users\FiFo\AppData\Local\Programs\Python\Python27\Lib\site-packages\PyQt5\sip.pyi
    1 file(s) copied.
    C:\Users\FiFo\AppData\Local\Programs\Python\Python27\python.exe
D:\opencv\sip-4.19.12\mk\u distinfo.py“” C:\Users\FiFo\AppData\Local\Programs\Python27\Lib\site packages\PyQt5\u sip-4.19.12.dist-info installed.txt

D:\opencv\sip-4.19.12\sipgen>pip冻结

backports.functools lru cache==1.5 cycler==0.10.0 enum34==1.1.6 kiwisolver==1.0.1 matplotlib==2.2.3 numpy==1.15.1枕头==5.2.0 pynaoqi==2.1.4.13 pyparsing==2.2.0 PyQt5 sip==4.19.12 python dateutil==2.7.3 pytz==2018.5 six==1.11.0

但是我在任何地方都找不到PyQt5.sip文件。构建PyQt提供:

D:\opencv\PyQt5\u gpl-5.11.2>python configure.py查询qmake-about 您的Qt安装。。。错误:无法导入PyQt5.sip。确保 您已将SIP配置为创建SIP模块的专用副本


这是一个稳定版本的bug。作者建议下载有效的最新快照。另一个解决办法是:

“要在包含sip.pyd的同一目录中创建空的_u; init __; py.py文件。”

之后,我配置了:

python configure.py --qmake d:\qt5_32\bin\qmake.exe --static --sip-incdir ..\sip-4.19.13.dev1809111822\siplib --sip d:\opencv\sip-4.19.13.dev1809111822\sipgen\sip.exe --confirm-license

我确认创建一个空的
\uuuu init\uuuu.py
文件对我有效。我还创建了贯穿整个过程的要点()。我希望这会有所帮助。