[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