[PyQt] Symbol not found: _sipQtConnect (Qt5 and PyQt 4.10 on OSX, 32 bit)

Phil Thompson phil at riverbankcomputing.com
Mon Mar 18 04:38:25 GMT 2013


On Mon, 18 Mar 2013 13:36:51 +1300, Glenn Ramsey <gr at componic.co.nz>
wrote:
> On 18/03/13 11:18, Phil Thompson wrote:
>> On Mon, 18 Mar 2013 08:17:18 +1300, Glenn Ramsey <gr at componic.co.nz>
>> wrote:
>>> On 16/03/13 21:56, Phil Thompson wrote:
>>>> On Sat, 16 Mar 2013 14:16:08 +1300, Glenn Ramsey <gr at componic.co.nz>
>>>> wrote:
>>>>> On 15/03/13 22:07, Phil Thompson wrote:
>>>>>> On Fri, 15 Mar 2013 15:51:00 +1300, Glenn Ramsey
<gr at componic.co.nz>
>>>>>> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I have built a 32 bit version of PyQt on OSX (10.8.2) using Qt5,
but
>>>> it
>>>>>>> doesn't
>>>>>>> work:
>>>
>>>> Make sure the qpy libraries are being built as you expect (ie. 32
bits
>>>> rather than 64), ie. that your change to macx-clang-32 is being
applied
>>>> to
>>>> everything.
>>>>
>>>   > Phil
>>>   >
>>>
>>> Thanks Phil, that does appear to be the problem. QtCore is being built
>> as
>>> 64
>>> bit, everything else as 32 bit (this is in a freshly untarred dir):
>>>
>>> $find . -name '*.o' | xargs file
>>>
>>> ./pylupdate/fetchtr.o:
>>> Mach-O object i386
> 
>>> ./qpy/QtCore/moc_qpycore_pyqtproxy.o:
>>> Mach-O 64-bit object
> 
>>> ----8<----
>>>
>>> What do I need to do to fix it?
>>>
>>> Glenn
>>
>> As we are talking hacks here anyway...
>>
>> Edit your installed sipconfig.py and change the value of 'platform' in
>> _pkg_config to 'macx-clang-32'. Then back out all your related changes
to
>> PyQt's configure.py.
>>
>> In PyQt's new build system (4.10.1 hopefully) you will just be able to
>> pass --spec macx-clang-32 to its configure.py.
>>
>> Phil
>>
> 
> It is already set to that.
> 
> $ more 
>
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sipconfig.py
> 
> ...
> # These are installation specific values created when SIP was
configured.
> _pkg_config = {
>      'arch':               'i386',
>      'default_bin_dir': 
> '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin',
>      'default_mod_dir': 
>
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
>      'default_sip_dir': 
> '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/share/sip',
>      'deployment_target':  '',
>      'platform':           'macx-clang-32',
>      'py_conf_inc_dir': 
>
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7',
>      'py_inc_dir': 
>
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7',
>      'py_lib_dir': 
>
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config',
>      'py_version':         0x020703,
>      'sip_bin': 
> '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/sip',
>      'sip_config_args':    '--arch i386 --platform macx-clang-32',
>      'sip_inc_dir': 
>
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7',
>      'sip_mod_dir': 
>
'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
>      'sip_version':        0x040e04,
>      'sip_version_str':    '4.14.4',
>      'universal':          ''
> }
> ...

In your original report you stated that sip was built with just '--arch
i386'. '--platform macx-clang-32' is not supported and configure.py will
generate an error message if used, so I don't see how that configuration
could be created.

With a clean PyQt, set the QMAKESPEC environment variable to macx-clang-32
and then run configure.py. That works for me.

Phil



More information about the PyQt mailing list