[PyQt] Basic QML test seg faults in PyQT but not QT on Linux

Louis Simons lousimons at gmail.com
Thu Sep 15 01:45:24 BST 2016


Sorry, I screwed up and posted this last time without a subject line, which
is poor etiquette and usually means nobody reads it.  I heavily apologize
if everyone read this and just didn't have a response.

In trying to get a very basic PyQt5 QML example
<https://www.boxcontrol.net/beginners-pyqt5-and-qml-integration-tutorial.html>
to
run, I found that I get a segmentation fault.  I verified that it only
seems deal with displaying QML since an example without a window
<http://pyqt.sourceforge.net/Docs/PyQt5/qml.html> runs fine.  I tried the
following minimal test:

    #!/usr/bin/python3
    import sys
    from PyQt5.QtCore import QUrl
    from PyQt5.QtWidgets import QApplication
    from PyQt5.QtQml import QQmlApplicationEngine

    # Main Function
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        engine = QQmlApplicationEngine("simple.qml")
        engine.quit.connect(app.quit)
        sys.exit(app.exec_())

simple.qml:

    import QtQuick 2.5
    import QtQuick.Controls 1.4

    ApplicationWindow {
        width: 300
        height: 200
        title: "Simple"
        visible: true
    }

When I run this application, a window appears for a split second before
closing like in the more detailed example, and I receive `Segmentation
fault` in the console (and nothing more).

Running from GDB shows that the `QSGRenderThread` is receiving the SIGSEGV:

    (gdb) run snowman_qt.py
    Starting program: /usr/bin/python3 snowman_qt.py
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".
    [New Thread 0x7fffe912b700 (LWP 17200)]
    [New Thread 0x7fffe3dbb700 (LWP 17201)]
    [New Thread 0x7fffe1442700 (LWP 17202)]
    [New Thread 0x7fffdbfff700 (LWP 17203)]

    Thread 5 "QSGRenderThread" received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x7fffdbfff700 (LWP 17203)]
    __strstr_sse2 (haystack_start=0x0, needle_start=0x7fffe28c9dd0
"nouveau") at ../string/strstr.c:63
    63 ../string/strstr.c: No such file or directory.

If I run the QML file from a C++ application
<https://github.com/thp/pyotherside/issues/63>, there is no segmentation
fault and the application works.  Note that I'm using PyQT without
PyOtherside, but the symptoms seem similar.

Is there a way to get more information to continue debugging?

I am running Python 3.5.2 on Linux Mint 18.  My QT version is 5.7.0, my PyQt
 version is 5.7, and my SIP version is 4.18.1.

This is a copy of my stackoverflow question
<http://stackoverflow.com/questions/39381009/simple-pyqt5-qml-application-causes-segmentation-fault>,
and I apologize for spamming this issue.  I'm trying to convince a small
team to look at QML over HTML5 and this is a blocker.

Thanks,
Louis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160915/7114a961/attachment-0001.html>


More information about the PyQt mailing list