undefined symbol: sipExportedExceptions_limacore

Phil Thompson phil at riverbankcomputing.com
Mon Dec 8 21:20:38 GMT 2025


It may not generate exactly that number of files. The number will depend 
on how many classes you are wrapping.

To get the fastest compilation time you would set the value to 1. That 
may use too much memory and fail to build. You would then try 2, and so 
on. I’ve never needed anything greater than 2.

On 08/12/2025 08:46, Laurent Claustre wrote:
> Dear Phil,
> 
> I've started using the Package Projects recipe and get some issues.
> 
> 1/ for the "examples-core" ( lima-processlib for us), we do set in the
> tool.sip.project section:
> 
> [tool.sip.project]
> sip-files-dir = "sip"
> build-dir = "build-sip"
> sip-module= "lima.sip"
> dunder-init = true
> 
> When generating the code, sip-build  creates well the
> build-sip/processlib directory with all the files excepted the sip.h
> file which is created into build-sip/
> 
> 2/ for the example-extra (lima-camera-xxx for us), we use
> --concatenate sip-build option, but the tool never generate the exact
> requested number.
> For instance if we request 12 sip-build only generates 8 files, if we
> request 8 it generates  7 files ...
> 
> Thanks for your help.
> 
> Laurent
> 
> On 12/4/25 14:45, Laurent Claustre wrote:
>> Dear Phip,
>> 
>> so, should we move to the recipe for "Package Projects" you describe 
>> here 
>> https://python-sip.readthedocs.io/en/stable/examples.html#package-projects 
>> ?
>> we have lima-core depending of processlib then we will have to port 
>> about 30 others "extra" projects (lima-camera-xxxxx) which depend on 
>> lima-core.
>> 
>> Laurent
>> 
>> On 12/2/25 15:35, Phil Thompson wrote:
>>> If limacore uses definitions in processlib (ie. it uses %Import to 
>>> get those definitions) then they must share the same sip 
>>> implementation (which itself must be a separate module).
>>> 
>>> On 02/12/2025 14:29, Laurent Claustre wrote:
>>>> fine I understand now, but if the limacore sip files contain some
>>>> definitions using class or struct or whatever only define in the
>>>> processlib project should we not use independent sip 
>>>> implementations?
>>>> 
>>>> On 12/2/25 12:08, Phil Thompson wrote:
>>>>> You therefore have two independent sip implementations. That's fine 
>>>>> but the limacore .sip file cannot %Import the processlib .sip file.
>>>>> 
>>>>> On 02/12/2025 08:36, Laurent Claustre wrote:
>>>>>> in fact we do not use the sip module but we compile over the sip
>>>>>> source file (sip_array.c sip_core.c sip_descriptors.c sip_enum.c
>>>>>> sip_int_convertors.c sip_object_map.c sip_threads.c 
>>>>>> sip_voidptr.c).
>>>>>> Idea is to build our project with sip other installed conda 
>>>>>> package
>>>>>> which can use different version of sip.
>>>>>> Should we not do build like that or there are  missing build 
>>>>>> configuration?
>>>>>> 
>>>>>> Laurent
>>>>>> 
>>>>>> On 12/1/25 17:23, Phil Thompson wrote:
>>>>>>> Well there is something wrong with it. When a SIP generated 
>>>>>>> module is imported it registers itself with the sip module. 
>>>>>>> processlib doesn't seem to be doing that. When limacore is 
>>>>>>> imported it imports processlib and looks for it in the sip module 
>>>>>>> registry.
>>>>>>> 
>>>>>>> On 01/12/2025 15:59, Laurent Claustre wrote:
>>>>>>>> Yes we did it.
>>>>>>>> 
>>>>>>>> On 12/1/25 15:58, Phil Thompson wrote:
>>>>>>>>> On 01/12/2025 14:47, Laurent Claustre wrote:
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>> thanks the exceptions flag helps definitively.
>>>>>>>>>> 
>>>>>>>>>> Now I have an other issue, this project limacore is using an 
>>>>>>>>>> other
>>>>>>>>>> module we bind with sip too, called processlib and I get this 
>>>>>>>>>> error
>>>>>>>>>> when importing limacore:
>>>>>>>>>> 
>>>>>>>>>>>>> from Lima import Core
>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>   File "<stdin>", line 1, in <module>
>>>>>>>>>>   File
>>>>>>>>>> "/opt/bliss/conda/miniconda/envs/lima_dev_sip6/lib/python3.12/site-packages/Lima/Core/__init__.py", 
>>>>>>>>>> line 24, in <module>
>>>>>>>>>>     from limacore import *
>>>>>>>>>> RuntimeError: the processlib module failed to register with 
>>>>>>>>>> the sip module
>>>>>>>>> 
>>>>>>>>> Has processlib been ported to the latest SIP?
>>>>>>>>> 
>>>>>>>>> Phil
>> 


More information about the PyQt mailing list