dbus packet auf dem pi installieren und in ein .py script importieren?

  • Hallo,



    ich möchte mein Raspberry Pi mit meinem Thymio über die serielle Schnittstelle verbinden.

    Dafür folge ich dieser Anleitung.

    Ich habe mit

    Code
    sudo apt-get install python-gobject
    sudo apt-get install dbus

    die Pakete dbus und gobject erfolgreich installiert.

    Möchte ich nun die Pakete mit


    Python
    import dbus
    import dbus.mainloop.glib
    import gobject
    from optparse import OptionParser

    in mein .py script einbinden, bekomme ich für alle Pakete folgende Fehlermeldung.


    Code
    No module found xyz ... 


    Hat jemand eine Ahnung wie ich das ganze fixen bzw. beheben kann?


    Lg

  • die Pakete dbus und gobject erfolgreich installiert.


    Das Paket dbus hat aber nichts mit Python zu tun:


    python3-dbus hingegen:


    Nur weil ein Paket in einem apt-Repository so heißt, wie eines, welches du in Python importierst, sind sie noch lange nicht gleichzusetzen.


    Btw. warum verwendest du noch Python 2? -> EOL in 10 Monaten: https://pythonclock.org/


    Edit:


    in mein .py script einbinden, bekomme ich für alle Pakete folgende Fehlermeldung.

    Das kann nicht sein - nach dem ersten erfolglosen Import wird der Python-Interpreter nach einem ImportError (oder ModuleNotFoundError) beendet, die folgenden Pakete werden gar nicht erst versucht zu importieren.

  • Das Paket dbus hat aber nichts mit Python zu tun:


    python3-dbus hingegen:

    Ah, alles klar, mein Fehler.


    Ich habe jetzt mit

    Code
    sudo apt-get install python3-dbus

    das dbus Paket installiert.

    Bekomme aber trotzdem noch die selbe Fehlermeldung. :/

    Hab ich da etwas nicht richtig verstanden?


    Btw. warum verwendest du noch Python 2? -> EOL in 10 Monaten: https://pythonclock.org/

    Wurde mir von einem Kommilitonen empfohlen, weil ich mit openCV arbeite...


    Edit:


    Das kann nicht sein - nach dem ersten erfolglosen Import wird der Python-Interpreter nach einem ImportError (oder ModuleNotFoundError) beendet, die folgenden Pakete werden gar nicht erst versucht zu importieren.

    Ja, das stimmt. Hab mich falsch ausgedrückt.

    Ich mache das über die Kommandozeile, so rufe ich nacheinander die imports auf... :)

  • Bekomme aber trotzdem noch die selbe Fehlermeldung. :/

    Hab ich da etwas nicht richtig verstanden?

    Da du zuvor python-gobject installiert hast, gehe ich davon aus, dass du Python 2 verwendest - da bräuchtest du dann python-dbus. Aber warum man jetzt überhaupt noch Python 2 verwendet, ist mir ein Rätsel. Python 3.x gibt's jetzt seit über 10 Jahren, Python 3.8 ist in der Entwicklung...


    Wurde mir von einem Kommilitonen empfohlen, weil ich mit openCV arbeite...

    Das Argument dahinter verstehe ich nicht. Die Python-Bindings für OpenCV 3 und die für das recht neue OpenCV 4 laufen unter Python 2 und 3,

  • Da du zuvor python-gobject installiert hast, gehe ich davon aus, dass du Python 2 verwendest - da bräuchtest du dann python-dbus. Aber warum man jetzt überhaupt noch Python 2 verwendet, ist mir ein Rätsel. Python 3.x gibt's jetzt seit über 10 Jahren, Python 3.8 ist in der Entwicklung...

    Bin mitten in meiner Bachelorarbeit. Ich hatte Schwierigkeiten mit meinem Mac, OpenCV und Python3.

    Deswegen wurd mir der Tipp gegeben python2 zu nutzen. Dann ging plötzlich alles. Jetzt auf die schnelle alles zu ändern und auf python3 zu wechseln wäre mir zu zeitintensiv. Habe nur noch 1 Monat zeit und habe nicht viel geschrieben.


    Beide Pakete sind installiert:


    Trotzdem ist ein import nicht möglich.

    Woran liegt das? :/ :helpnew::helpnew::helpnew::helpnew::helpnew::helpnew:


    Das Argument dahinter verstehe ich nicht. Die Python-Bindings für OpenCV 3 und die für das recht neue OpenCV 4 laufen unter Python 2 und 3,

    Wie gesagt, hatte immer irgendwelche Fehlermeldungen.

    Bin jetzt auch im Strees. Nach meiner Abschlussarbeit greife ich dann auf python3 zu. :angel:

  • Der Import funktioniert einfach nicht. :X


    Code
    pi@berrypi:~ $ python
    Python 3.4.3 |Continuum Analytics, Inc.| (default, Aug 21 2015, 00:53:08) 
    [GCC 4.6.3] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import dbus
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named 'dbus'
    >>> 
  • Für Python 2, ja.

    Kann es sein, dass dbus nicht mit python 3 kompatibel ist?

    Ich habe jetzt alles platt gemacht und neu installiert bzw. eingerichtet.

    Anstatt anaconda habe ich virtualwrapper und virtualen für eine virtuelle Umgebung benutzt.


    Hab jetzt auch python 3! ;)

    Jetzt habe ich folgendes Problem:

    -cv2 lässt sich mit python3 importieren, aber nicht dbus

    -dbus lässt sich mit python2 importieren, aber nicht cv2


    Ich bin am verzweifeln.... :/

    Wie kann das das Problem lösen, irgendwas mach ich doch falsch.. :@:wallbash:;(;(;(

  • Hallo,


    der Ausgabe nach verwendest du mal die Python-Distribution Anaconda, mal nicht. Mal befindest du dich in einer virtuellen Umgebung (=virtual environment), mal nicht.


    Je nach dem wie die virtuellen Umgebung eingerichtet ist, "sieht" diese die systemweit installierten Module nicht. Dazu gehört auch dbus.


    Du musst, um Hilfe zu dem Fehler zu bekommen, schon _genau_ (!) sagen, wie du wo was machst. Das können wir nicht alles erraten. Auch, wenn Linus sich schon Mühe gegeben hat.


    Des weiteren sieht aus so aus (in Post #7), als hättest du das Defaut Python durch aus Anaconda ersetzt. Kann theoretisch funktionieren, halte ich aber grundsätzlich auf Linux für keine gute idee, weil deine Distro i.d.R. davon ausgeht, dass a) Python in einer bestimmten Version (nämlich die aus den Quellen) vorliegt und b) der Befehl`python` Python 2.7 startet und `python3` Python 3.x (welche Version auch immer in den Quellen ist. Bei der Installation von Anaconda unter Linux kann man wählen, ob das vorhandene Python ersetzt bzw. der Aufruf "umgebogen" werden soll oder nicht. Weitere Erklärung: https://wiki.ubuntuusers.de/Anaconda/


    Der Vollständigkeit halber: unter Windows stellt sich das ganze ein wenig anders dar - aber hier geht's ja um den Raspi und Raspbian / Linux :)


    Grundsätzlich würde ich unter Linux wo immer möglich Python-Module via `pip` installieren und nicht über die Paketquellen. Und das ganze dann noch in einem virtual environment, dann ist a) alles sauber, b) alles konfliktfrei und c) alles schön gekapselt ohne Nebeneffekte.


    Gruß, noisefloor