Auf einer SDKarte PyQt5 mit viel rumgespiele ans laufen gebracht, neue Karte und ich bekomme es nicht mehr hin

  • Hallo,

    ich bin etwas am verzweifeln. Beim Warten auf die neue SDKarte habe ich mit einer alten herumgespielt und versucht PyQt5 auf dem letzten Raspbian OS zum laufen zu bekommen.

    Wenn ich Pakete wie python3-pyqt5 installiere meckert pyqtgraph dass meine qt-version veraltet ist. Also habe ich beim ersten mal folgendes gemacht:

    Danach bekam ich die Meldung, dass nur qt-15.11 installiert ist. Danach habe ich sehr viel herumprobiert und habe schon angefangen alles vorzubereiten damit ich aus der aktuellen Quelle qt kompilieren kann. Dann habe ich allerdings https://github.com/tranter/raspberry-pi-qt-builds entdeckt, wo es alles schon fertig gebaut gibt. Danach hat tasächlich alles funktioniert wie es soll.

    Es kam die neue Speicherkarte und ich habe versucht alles noch einmal sauber aufzusetzen. Meine Kommandos sehen wie folgt aus:

    Ich ende aber immer mit folgendem Fehler, den ich vorher nie gesehen habe:

    sudo python3 ~/Documents/GUI/Main.py

    Traceback (most recent call last):

    File "/home/pi/Documents/GUI/Main.py", line 3, in <module>

    import pyqtgraph as pg

    File "/usr/local/lib/python3.7/dist-packages/pyqtgraph/__init__.py", line 13, in <module>

    from .Qt import QtGui, mkQApp

    File "/usr/local/lib/python3.7/dist-packages/pyqtgraph/Qt.py", line 144, in <module>

    from PyQt5 import QtTest

    ValueError: PyCapsule_GetPointer called with incorrect name

    Ich bekomme diesen Fehle einfach nicht weg. Das komische ist, dass ich genau diese Pakete auf der anderen Karte installiert habe, und diese so funktionieren. Beim Fehler selbst findet man oft dass ein downgrade der pyqt-Version das Problem gelöst hat, aber wie gesagt, mit der anderne karte läuft die Kombination.

    Ich könnte mir vorstellen dass durch das ganze installieren der Pakete irgendwelche Links umgebogen wurden, und deshalb doch mit anderen Versionen gearbeitet wird. Mit "sudo python3 -m pip list" werde nmir aber die gleichen Versionen angezeigt...

    Kann mir vielleicht jemand helfen? Wenn ich feststecke formatiere ich die Karte immer neu und installiere das neuste OS neu, damit ich sicher sein kann dass ich vorher nichts vestellt habe.

  • Auf einer SDKarte PyQt5 mit viel rumgespiele ans laufen gebracht, neue Karte und ich bekomme es nicht mehr hin? Schau mal ob du hier fündig wirst!

  • Hi,

    danke schon einmal. Das habe ich ebenfals versucht:

    Code
    sudo python3 -m pip install PyQt5
    sudo wget https://github.com/tranter/raspberry-pi-qt-builds/releases/download/v0.5-beta/Qt5.15.2-RaspberryPi3-bin-full.tgz
    sudo tar xf Qt5.15.2-RaspberryPi3-bin-full.tgz -C /
    PATH=$PATH:/usr/local/Qt-5.15.2/bin/
    sudo python3 -m pip install pyqtgraph

    Danach, wenn ich qmake -version eingebe, bekomme ich:

    QMake version 3.1

    Using Qt version 5.15.2 in /usr/local/Qt-5.15.2/lib

    Wenn ich die GUI starten möchte:

    Traceback (most recent call last):

    File "/home/pi/Documents/GUI/Main.py", line 3, in <module>

    import pyqtgraph as pg

    File "/usr/local/lib/python3.7/dist-packages/pyqtgraph/__init__.py", line 13, in <module>

    from .Qt import QtGui, mkQApp

    File "/usr/local/lib/python3.7/dist-packages/pyqtgraph/Qt.py", line 50, in <module>

    raise Exception("PyQtGraph requires one of PyQt5, PyQt6, PySide2 or PySide6; none of these packages could be imported.")

    Exception: PyQtGraph requires one of PyQt5, PyQt6, PySide2 or PySide6; none of these packages could be imported.

    Mit "sudo python3 -m pip list" sehe ich, dass wirklich das Paket nicht installiert ist, obwohl es zuvor korrekt installiert wurde. Wenn ich es wieder installieren möchte:

    Code
    sudo python3 -m pip install PyQt5

    bekomme ich das:

    Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple

    Collecting PyQt5

    Using cached https://files.pythonhosted.org/packages/8e/a4…5-5.15.4.tar.gz

    Installing build dependencies ... done

    Complete output from command python setup.py egg_info:

    Traceback (most recent call last):

    File "<string>", line 1, in <module>

    File "/usr/lib/python3.7/tokenize.py", line 447, in open

    buffer = _builtin_open(filename, 'rb')

    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-c6r0v9_1/PyQt5/setup.py'

    ----------------------------------------

    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-c6r0v9_1/PyQt5/

    Ich vermute es hat etwas mit irgendwelchen Pfaden oder Berechtigungen zu tun...


    Ich habe noch einmal die SDKarte neu formatiert. Diesmal habe ich angefangen mit:

    Code
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade
    
    sudo apt-get install qt5-default pyqt5-dev pyqt5-dev-tools
    
    python3 pip install --upgrade setuptools
    python3 pip install --upgrade pip
    python3 -m pip install pyqt5
    python3 -m pip install pyqtgraph

    die pyqt5 Installation hat bestimmt eine Stunde gedauert.

    Wenn ich nun die GUI starte, erhalte ich als Fehlermeldung:

    Exception: pyqtgraph requires Qt version >= 5.12 (your version is 5.11.3)

    Also nehme ich die vorkompilierte Version, welche auch auf der anderen karte funktioniert:

    Code
    sudo wget https://github.com/tranter/raspberry-pi-qt-builds/releases/download/v0.5-beta/Qt5.15.2-RaspberryPi3-bin-full.tgz
    sudo tar xf Qt5.15.2-RaspberryPi3-bin-full.tgz -C /

    und hänge den Pfad zu qmake an die PATH Variable.

    Danach erhalte ich:

    bei qmake -version die gewollte

    "QMake version 3.1

    Using Qt version 5.15.2 in /usr/local/Qt-5.15.2/lib"

    Allerdings versucht PyQt immer noch die alte qmake Version zu nutzen, weshalb ich immer noch:

    Exception: pyqtgraph requires Qt version >= 5.12 (your version is 5.11.3)

    erhalte.

    Ich muss also irgendwie PyQt umkonfigurieren dass es die neue qmake Version benutzt.

  • Anstatt zu versuchen alles upzudaten, konnte ich natürlich auch einfach eine alte pyqtgraph version (0.11.1) installieren.

    Mit den folgenden Befehlen kann man auf einem frischen System PyQt5 mit pyqtgraph zum laufen bekommen:

  • Hi,

    welchen Code meinst du? Die meisten Fehler kommen bei der Installation von den Paketen, und die installiere ich wie in meinen Posts zuvor beschrieben.

    Wenn es beim Laden der GUI zum Fehler kommt, reicht einfach ein "import pyqtgraph as pg" im Python file.

    Wie gesagt, ich kann auch einfach alles mit einer älteren pyqtgraph Version laufen lassen. Wenn dich allerdings die Neugier packt, versuch ich dir alle Fragen zu beantworten. Mich interessiert das ja auch, alerdings reicht mein Wissen oft nicht aus bei den Dingen die im Hintergrund passieren (die meisten Probleme habe ich mit Pfaden, Symlinks und Berechtigungen)

  • Hallo Pflunz,

    Ich habe dasselbe Problem. Ich bekomme es nicht hin pyqtgraph auf dem raspberry zum laufen zu kriegen, egal ob Pi3 oder Pi4. Ich benutzte das neueste Raspberry Pi Os, mache immer vorher ein Upgrade aber ich bekomme immer die selben fehler wie bei dir.

    hast du es mittlerweile hinbekommen das pyqtgraph läuft?

    Schöne Grüße

  • Probier mal das Paket python3-pyqt5:

    Code
    sudo apt-get install python3-pyqt5

    pyqtgraph würde ich via pip installieren. pyqtgrapj kann mit PyQt5 und PySide2 arbeiten.

    Der weitere Vorteil ist, dass durch die Installation über den Paketmanager alle Abhängigkeiten zu den Bibliotheken aufgelöst werden.

  • Hallo

    DAnke für den Tipp, aber er hat auch nicht funktioniert. Ich habe es auf einem frischen System probiert (mit aktuellem OS von der raspiHomepage).

    Ich habe die beiden Befehle ausgefüht:

    Code
    sudo apt-get install python3-pyqt5
    sudo pip3 install pyqtgraph


    Python 3.7.3 (/usr/bin/python3)

    >>> %Run test_qtgraph.py

    Traceback (most recent call last):

    File "/home/pi/test_qtgraph.py", line 1, in <module>

    import pyqtgraph.examples

    File "/home/pi/.local/lib/python3.7/site-packages/pyqtgraph/__init__.py", line 13, in <module>

    from .Qt import QtCore, QtGui, mkQApp

    File "/home/pi/.local/lib/python3.7/site-packages/pyqtgraph/Qt/__init__.py", line 155, in <module>

    from PyQt5 import sip, uic

    ImportError: cannot import name 'sip' from 'PyQt5' (/usr/lib/python3/dist-packages/PyQt5/__init__.py)

  • Ich hab dann pyqtgraph deinstalliert und

    über Thonny die pyqtgraph version 0.11.1 installiert

    dann funktioniert das pyqtgraph example und ein Beispiel skript.

    Bei Ausführen kommt aber immer :

    libEGL warning: DRI2: failed to authenticate

    qt5ct: using qt5ct plugin

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!