Python3 und rrdtool - was mach ich bloß falsch?

  • Hallo zusammen,
    Problem: ich "programmiere" unter Python3 und möchte damit rrdtool steuern.
    Die wesentlichen Programmteile dazu laufen aber ich kriegs nicht hin, dass das richtige Modul rrdtool importiert wird. Das gelingt mir nur unter Python2 (da laufen dann aber andere Programmteile nicht, die Python3 brauchen...)
    Zum Befehl "import rrdtool" kriege ich unter Python3 nach wie vor die Fehlermeldung

    Zitat

    ImportError: No module named 'rrdtool'


    Dabei habe ich sehr wohl das gemacht, was hier unter readme beschrieben steht:
    readme - python-rrdtool
    Hab vor den angegebenen Befehl noch das sudo gesetzt und da läuft dann auch tatsächlich eine Installation.

    Code
    ~ $ sudo pip install rrdtool
    Requirement already satisfied (use --upgrade to upgrade): rrdtool in /usr/local/lib/python2.7/dist-packages
    Cleaning up...


    Aber offensichtlich nicht für Python3 sondern "nur" für Python2.7
    In der Beschreibung steht aber, dass das ebenfalls unter Python 3.3+ laufen sollte.

    Wenn ich import rrdtool unter Python2 aufrufe, klappts. Unter Python3 aber nicht. :no_sad:
    Was hab ich übersehen?

  • Brauchst du import rrdtool überhaupt? Ich denke als "required modules" muss das nicht oben im Skript stehen. Kommt drauf an was du vorhast.

    Du kannst das doch direkt aufrufen bzw. reinschreiben lassen:

    Python
    from rrdtool import update as rrd_update
    
    
     deinwert = rrd_update('/deinpfad/deineRRD_DB.rrd', 'N:%s:%s' %(metric1, metric2));

    oder so ähnlich je nach Zweck.

  • Hm..tja...ich glaub, das funzt so nicht.
    Denn wenn ich Deinen Vorschlag richtig verstehe, müßte ja trotzdem das rrdtool-Modul irgendwann mal zur Verfügung stehen. Da passiert im Hintergrund halt einiges, wie ich mir vorstellen kann.

    Was ich konkret vorhab, sei mal hier in einem kleinen Beispielcode gezeigt.
    (es werden minütlich die CPU-Temperatur und ein DS18B20 ausgelesen, die Zahlenwerte ausgegeben und schließlich das Update der RRD durchgeführt):


    Unter Python2 läuft die Sache, unter Python3 (kann man in hier verwendeten Editor "Geany" ja umstellen) bekomme ich die Fehlermeldung:

    Zitat

    ImportError: No module named 'rrdtool'

    So ganz klar ist mir Dein Vorschlag jetzt nicht, wie ich das anders machen könnte
    :)

  • pip installiert Pakete für Python 2 - das entsprechende Tool für Python 3 heißt pip3

    Code
    sudo pip3 install rrdtool

    sollte also ausreichen.

    4zap: Wenn das Modul rrdtool nicht zur Verfügung steht, kann man natürlich auch nicht einzelne Teile davon importieren.

    Einmal editiert, zuletzt von Manul (2. Januar 2017 um 22:53)

  • Manul!!
    Ich werd verrückt - DAS FUNKTIONIERT!! :bravo2: :thumbs1:
    Hier die Premiere in original (Daten per Funk empfangen, und keine Fehlermeldung wegen import rrdtool):


    Morgen werd ich guuute Laune im Büro haben :D

    VIELEN DANK für DEN TIP mit PIP3
    (hab ich noch nirgends sonst gefunden!)

Jetzt mitmachen!

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