sip & PyQt w/ Python 3.13a

Scott Talbert swt at techie.net
Fri Dec 1 13:44:39 GMT 2023


On Fri, 1 Dec 2023, Phil Thompson wrote:

> On 01/12/2023 04:34, Scott Talbert wrote:
>> Hi Phil,
>> 
>> I know it's early in the Python 3.13 dev cycle, but the Fedora folks
>> have started working on building everything.  When trying to build
>> PyQt5, we're seeing a RecursionError.  Any ideas about that?
>> 
>> Generating the QtCore .pyi file...
>> sip-build: An internal error occurred...
>> Traceback (most recent call last):
>>   File "/usr/bin/sip-build", line 8, in <module>
>>     sys.exit(main())
>>              ^^^^^^
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/tools/build.py",
>> line 37, in main
>>     handle_exception(e)
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/exceptions.py",
>> line 81, in handle_exception
>>     raise e
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/tools/build.py",
>> line 34, in main
>>     project.build()
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/project.py", line
>> 245, in build
>>     self.builder.build()
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/builder.py", line
>> 48, in build
>>     self._generate_bindings()
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/builder.py", line
>> 280, in _generate_bindings
>>     buildable = bindings.generate()
>>                 ^^^^^^^^^^^^^^^^^^^
>>   File "/builddir/build/BUILD/PyQt5-5.15.9/project.py", line 619, in 
>> generate
>>     buildable = super().generate()
>>                 ^^^^^^^^^^^^^^^^^^
>>   File "/usr/lib64/python3.13/site-packages/sipbuild/bindings.py",
>> line 214, in generate
>>     output_pyi(spec, project, pyi_path)
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 53, in output_pyi
>>     _module(pf, spec, module)
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 132, in _module
>>     _class(pf, spec, module, klass, defined)
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 267, in _class
>>     _class(pf, spec, module, nested, defined, indent)
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 289, in _class
>>     _callable(pf, spec, module, member, klass.overloads,
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 485, in _callable
>>     _overload(pf, spec, module, overload, overloaded, first_overload,
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 575, in _overload
>>     signature = _python_signature(spec, module, py_signature, defined,
>>                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 599, in _python_signature
>>     as_str = _argument(spec, module, arg, defined, arg_nr=arg_nr)
>>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 676, in _argument
>>     s += _type(spec, module, arg, defined, out=out)
>>          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
>> line 710, in _type
>>     return ArgumentFormatter(spec, arg).as_type_hint(module, out, 
>> defined)
>>            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/formatters/argument.py",
>> line 327, in as_type_hint
>>     s += TypeHintManager(self.spec).as_type_hint(hint, out, context,
>>          ^^^^^^^^^^^^^^^^^^^^^^^^^^
>>   File
>> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/type_hints.py",
>> line 107, in __new__
>>     manager = cls._spec_manager_map[spec]
>>               ~~~~~~~~~~~~~~~~~~~~~^^^^^^
>>   File "/usr/lib64/python3.13/weakref.py", line 415, in __getitem__
>>     return self.data[ref(key)]
>>            ~~~~~~~~~^^^^^^^^^^
>>   File "<string>", line 4, in __eq__
>>   File "<string>", line 4, in __eq__
>>   File "<string>", line 4, in __eq__
>>   [Previous line repeated 495 more times]
>> RecursionError: maximum recursion depth exceeded in comparison
>
> No idea - what version of SIP?

That traceback was with 6.7.12, but I also tried with 6.8.0 and got a 
similar RecursionError.

Scott


More information about the PyQt mailing list