[Pythonmac-SIG] py2app cannot move to target thread error

Scott Frankel leknarf at pacbell.net
Thu Sep 17 06:52:15 CEST 2009


Hi all,

Has anyone within earshot of this list successfully built a PyQt app  
with SQL support using py2app?  I've been poking and prodding at the  
problem for a few months now and I'm no closer to a solution to the  
"cannot move to thread ..." error.

Might there be a setup.py solution?
Do I need to dig back into my macports installations?
How can I locate the source of the offending item?

Thanks in advance for any suggestions!  I'd be much obliged.
Scott




On Aug 24, 2009, at 9:49 PM, Scott Frankel wrote:

>
> If someone has any wisdom to share regarding building a PyQt app  
> with SQL support, I'd be grateful.
>
>
> I've deleted and rebuilt my macports environment from scratch and  
> googled myself silly.  In a classic snake-eating-tail moment, my  
> online searches are returning my own posts more often than not.
>
> My test apps that call for either QPSQL or QSQLITE die, while my  
> test app that does not include PyQt4.QtSql continues to build and  
> run happily.  Setting the DYLD_PRINT_LIBRARIES env var, yields the  
> following output on app launch:
>
> Qt Version:    4.5.2
> PyQt Version:  4.5.4
> dyld: loaded: /opt/local/libexec/qt4-mac/plugins/sqldrivers/ 
> libqsqlpsql.bundle
> dyld: loaded: /opt/local/lib/postgresql83/libpq.5.dylib
> dyld: loaded: /opt/local/libexec/qt4-mac/lib/QtSql.framework/ 
> Versions/4/QtSql
> dyld: loaded: /opt/local/libexec/qt4-mac/lib/QtCore.framework/ 
> Versions/4/QtCore
> dyld: loaded: /opt/local/lib/libz.1.dylib
> dyld: loaded: /opt/local/lib/libssl.0.9.8.dylib
> dyld: loaded: /opt/local/lib/libcrypto.0.9.8.dylib
> QObject::moveToThread: Current thread (0x1da760) is not the object's  
> thread (0x1b1b10).
> Cannot move to target thread (0x1b1b10)
>
> On Mac OS X, you might be loading two sets of Qt binaries into the  
> same process. Check that all plugins are compiled against the right  
> Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one  
> set of binaries are being loaded.
>
>
> My macports environment looks like this:
>
> ...
>  postgresql83 @8.3.1_0 (active)
> ...
>  py26-altgraph @0.6.7_0 (active)
>  py26-bdist_mpkg @0.4.4_0 (active)
>  py26-macholib @1.2_0 (active)
>  py26-modulegraph-devel @0.7.2_0 (active)
>  py26-py2app-devel @0.4.2_1 (active)
>  py26-pyqt4 @4.5.4_0 (active)
>  py26-setuptools @0.6c9_0 (active)
>  py26-sip @4.8.2_0 (active)
> ...
>  qt4-mac @4.5.2_1+psql (active)
> ...
>
>
> Any thoughts or suggestions?
>
> Thanks!
> Scott
>
>
>
>
>
>
> On Aug 19, 2009, at 10:41 AM, Scott Frankel wrote:
>
>>
>> Hello,
>>
>> I'm stuck somewhere between macports and py2app.  I'm hopeful that  
>> someone here may be able to offer some advice on how to rectify my  
>> build environment.
>>
>> Exporting DYLD_PRINT_LIBRARIES=1 and running a test app built with  
>> QtSql support and another one without it, I'm pretty sure that the  
>> following line is the clue:
>>
>> 	dyld: loaded: /opt/local/libexec/qt4-mac/plugins/sqldrivers/ 
>> libqsqlpsql.bundle
>>
>> My question is, how do I access/get/compile the PSQL support my app  
>> requires?  My environment's qt4-mac, python26, and py2app are from  
>> macports.  The qt4-mac has the psql dependency:
>>
>> 	py26-py2app-devel @0.4.2_1 (active)
>> 	py26-pyqt4 @4.5.4_0 (active)
>> 	qt4-mac @4.5.1_0+psql (active)
>> 	
>> Thanks in advance!
>> Scott
>>
>>
>>
>>
>>
>> On Aug 10, 2009, at 8:51 AM, Scott Frankel wrote:
>>
>>>
>>> Hello,
>>>
>>> I'm troubleshooting a PyQt-PostgreSQL py2app error:  "Cannot move  
>>> to target thread".  Note that a test app builds and runs happily.   
>>> The error only comes up when I add PyQt4.QtSql' to py2app's option  
>>> includes.  eg:
>>>
>>> This works:
>>> 	OPTIONS = {'argv_emulation': True, 'includes': ['sip',  
>>> 'PyQt4._qt']}
>>>
>>> This doesn't:
>>> 	OPTIONS = {'argv_emulation': True, 'includes': ['sip',  
>>> 'PyQt4._qt', 'PyQt4.QtSql']}
>>>
>>> Researching the error, I've set DYLD_PRINT_LIBRARIES=1 in my shell  
>>> and am looking for duplicate instances of Qt libraries.  I'm not  
>>> seeing anything obvious.  But I also don't know exactly what to  
>>> look for.
>>>
>>> For example, should I be concerned with dyld output running the  
>>> app or building it?
>>>
>>> I created my build environment using macports.  It looks like the  
>>> correct libs are being accessed.  The last of the dyld output  
>>> looks like this:
>>>
>>> dyld: loaded: /opt/local/libexec/qt4-mac/plugins/sqldrivers/ 
>>> libqsqlpsql.bundle
>>> dyld: loaded: /opt/local/lib/postgresql83/libpq.5.dylib
>>> dyld: loaded: /opt/local/libexec/qt4-mac/lib/QtSql.framework/ 
>>> Versions/4/QtSql
>>> dyld: loaded: /opt/local/libexec/qt4-mac/lib/QtCore.framework/ 
>>> Versions/4/QtCore
>>> dyld: loaded: /opt/local/lib/libz.1.dylib
>>> dyld: loaded: /opt/local/lib/libssl.0.9.8.dylib
>>> dyld: loaded: /opt/local/lib/libcrypto.0.9.8.dylib
>>> QObject::moveToThread: Current thread (0x1d17d0) is not the  
>>> object's thread (0x1a7820).
>>> Cannot move to target thread (0x1a7820)
>>>
>>>
>>> Suggestions?
>>>
>>> Thanks in advance!
>>> Scott
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
>>> http://mail.python.org/mailman/listinfo/pythonmac-sig
>>
>> _______________________________________________
>> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
>> http://mail.python.org/mailman/listinfo/pythonmac-sig
>



More information about the Pythonmac-SIG mailing list