[PyQt] sip-build --debug and wheels on a Raspberry Pi
Kyle Altendorf
sda at fstab.net
Wed Apr 8 13:03:25 BST 2020
On 2020-04-08 07:29, Phil Thompson wrote:
> On 08/04/2020 04:10, Kyle Altendorf wrote:
>> I've got a couple issues related to building PyQt. I glanced around
>> quickly at them and they seemed likely trivial to identify (even if
>> solutions always take non-trivial amounts of work). If needed I can
>> go back through and provide some reproduction steps and logs.
>>
>> 1) sip-build --debug doesn't seem to set either the Designer or QML
>> plugins to be built with debug symbols intact. When I added debug to
>> the CONFIG lines in the .pro-in files I did get debug symbols.
>>
>> Backstory: This came up while debugging my issues with segfaults in
>> GitHub Actions Linux. I don't know the root cause of what I was
>> debugging but I did see what seemed to be two None instances... I
>> switched to official CPython docker images and the segfaults went
>> away. :|
>
> Should be fixed in tonight's PyQt snapshot.
Thanks.
>> 2) Building a wheel with pip on an ARM Raspberry Pi results in a file
>> with manylinux2014_x86_64 in the name. Perhaps something based on
>> distutils.util.get_platform() (plus pep425 described modification of
>> the value) and replacing linux with manylinux<whatever>? Or you'd
>> think some official library would expose this calculation for you to
>> use.
>>
>> PyQt5-5.14.2-cp35.cp36.cp37.cp38-abi3-manylinux2014_x86_64.whl
>>
>> Backstory: I'm trying to help piwheels get a build going for PyQt5.
>
> <whatever> is chosen according to the glibc requirements of Qt. It is
> specified using 'minimum-glibc-version' in ...
>
> https://www.riverbankcomputing.com/static/Docs/sip/pyproject_toml.html#tool-sip-project-section
Sorry, I added to my description and it became less clear. The concern
is the x86_64 part, I have no knowledge of errors in the manylinux part.
Raspberry Pi are armv7l. PEP425 describes building the platform tag,
albeit without the manylinux part.
https://www.python.org/dev/peps/pep-0425/#platform-tag
So maybe distutils.util.get_platform().replace('-', '.').replace('.',
'_').replace(sys.platform, the_selected_manylinux_tag). Or maybe the
wheel package has something, etc. I haven't looked at what this does in
macOS so I certainly may still be way off.
>>> distutils.util.get_platform().replace('-', '.').replace('.',
'_').replace(sys.platform, 'manylinux2014')
'manylinux2014_x86_64'
>>> distutils.util.get_platform().replace('-', '.').replace('.',
'_').replace(sys.platform, 'manylinux2014')
'manylinux2014_armv7l'
Cheers,
-kyle
More information about the PyQt
mailing list