[PyQt] Building PyQt5 on Windows

Wallboy wallboy at wallboy.ca
Wed Jun 7 07:16:56 BST 2017

I have compiled a custom build of Qt 5.9 and I'm now having an issue 
running PyQt5 configure.py against it. I'm running the following batch 

@echo off


REM Specify location of our qt 5.9 bin w/ qmake and DLLs
SET PATH=C:\qt5.9build\installfolder\bin;%PATH%

REM Sets up the environment for compiling with MSVC
CALL "C:\Program Files (x86)\Microsoft Visual Studio 
14.0\VC\vcvarsall.bat" x86

REM Now call configure
CALL "C:\Users\Wallboy\AnotherTestEnv\Scripts\python.exe" 
--sip "C:\Users\Wallboy\AnotherTestEnv\sip.exe" --confirm-license 
--no-designer-plugin --no-tools --concatenate

from this folder: C:\Users\Wallboy\Desktop\compilation\pyqt5-build

I get the "Failed to determine the detail of your Qt Installation". Of 
course I tried again with --verbose, but that gives absolutely zero more 

So for testing purposed I tried changing SET 
PATH=C:\qt5.9build\installfolder\bin;%PATH% to SET 
PATH=C:\Qt\Qt5.8.0-32bit\5.8\msvc2015\bin;%PATH% where those were the 
official Qt 5.8 binaries, and the configure worked just fine then.

When I built Qt 5.9 I skipped all submodules except qtbase, 
qtwebchannel, qtdeclarative, qtwebengine, qtquickcontrols, 
qtquickcontrols2 as well as used the flags -nomake tools, examples, tests

So I'm wondering if I skipped building some dependency that PyQt5 needs 
to configure it's build?

On 6/4/2017 6:42 AM, Phil Thompson wrote:
> On 4 Jun 2017, at 12:57 pm, Wallboy <wallboy at wallboy.ca> wrote:
>> No, I thought maybe the DLLs were different then the ones Qt provides. What are those DLL files in the /release directories for then if we just use Qt's already built DLLs?
> Those are the Python extension modules.
>> I have added Qt's bin folder to my PATH env and my programs seem to be working. However in my IDE (PyCharm), I am still getting Unresolved reference warnings on all my PyQt5.* imports. Though PyQt5 is working even with the warnings. I'm not sure if this is a virtualenv / PyCharm quirk? I do have the correct interpreter selected. Any ideas?
>> Also one other question. What would happen if I tried to build PyQt5 against the newest 5.9 Qt binaries? The entire reason I'm doing all this for a custom build, is that I need to disable WebRTC in QtWebEngine (this is now doable as of 5.9 using -no-webrtc in configure).
> PyQt5 will build against Qt v5.9 as expected.
>> Would it be possible to build just the WebEngine module for 5.9 and overwrite the QWeb*.dll files with the 5.9 ones? (Though I'm guessing -no-webrtc only affects the chromium QtWebEngineProcess.exe binary) Or is this just asking for trouble...
>> I'm not sure how the QWeb*.pyd and QWeb*.dll files work with one another. I'm guessing it just glues together the python function names to the actual C++ function names? If that's the case, and I use a newer DLL file, then I just wouldn't have access to any new functions that might have got added correct? Though I'm sure it's not that simple...
> Phil

More information about the PyQt mailing list