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@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
_______________________________________________
Pythonmac-SIG maillist - Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
_______________________________________________
Pythonmac-SIG maillist - Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig