Anfängerfrage Python 2/3

  • Guten Abend liebes Forum,

    da mir weder Google, noch die aktuelle Literatur (Handbuch PI usw) helfen konnte, wende ich mich an euch. Es handelt sich um ein modular aufgebautes Entwicklungsprojekt, welches aus mehreren umfangreichen Python-Programmen besteht (ca. 2-3k Zeilen Code). Die eigentliche Programmierung und auch Adaption diverser Bibliotheken stellt kein Problem dar, da ich aus dem Embedded-Bereich (C/Assembler) mit einigen Jahren Berufserfahrung komme. Nun ist es so, dass leider ein großer Teil der Software nicht in Python 3, sondern in Python 2.7 geschrieben ist.

    Die Frage lautet also, ob die Möglichkeit besteht laufende Daten aus einem Python 2.7 Skript in ein Python 3 Skript zu importieren. Oder ob man umständliche Wege gehen muss über beispielsweise GPIO's etc.

    Über Hilfe wäre ich euch sehr verbunden.

    Viele Grüße und ein frohes Fest.

  • da ich aus dem Embedded-Bereich (C

    und warum bleibst du nicht bei C?

    wäre für mich naheliegend.

    Ich tue mich mit Python auch schwer, wenn dann lieber C

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hi jar,

    und warum bleibst du nicht bei C?

    die Frage wurde bereits im EIngangspost impiizit beantwortet

    Es handelt sich um ein modular aufgebautes Entwicklungsprojekt, welches aus mehreren umfangreichen Python-Programmen besteht

    nix für ungut, aber auch wenn Weihnachten ist gilt - erst recht für "alte Hasen" - aufmerksamer lesen ...

    cu,

    -ds-

  • Hallo,

    Quote

    Die Frage lautet also, ob die Möglichkeit besteht laufende Daten aus einem Python 2.7 Skript in ein Python 3 Skript zu importieren.

    Man kann Python 2.7 Code schreiben, der zu 100% unter Python 3 läuft. Also ist die Antwort: grundsätzlich ja. Allerdings wird der allermeiste "real world" Codes, der "nur" für Python 2.7 geschrieben ist, aufgrund der Änderungen P2 -> P3 ohne Anpassung nicht laufen. Muss halt mal probieren, ob dein P2 Code nach der Konvertierung mit `2to3` so läuft wie gewünscht.

    Aber da Python 2.7 2020 so wie so EOL ist, macht eine Konvertierung von Code auf ein unterstütztes Python 3.x schon sinnvoll.

    Quote

    Oder ob man umständliche Wege gehen muss über beispielsweise GPIO's etc.

    ??? - wo ist der Zusammenhang zur `import` Frage.

    Gruß, noisefloor

  • die Frage wurde bereits im EIngangspost impiizit beantwortet

    ist keine Erklärung, sondern Ausrede, oder kann man Python Quellcode nicht zu C bringen?

    Die Zeit sich in unbekannten Python Code einzufummeln kann nicht weniger sein als neu zu programmieren in C wenn

    Adaption diverser Bibliotheken stellt kein Problem dar, da ich aus dem Embedded-Bereich (C/Assembler) mit einigen Jahren Berufserfahrung komme

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo raspygert,

    verstehe ich richtig dass du zwei Skripte/Programme parallel laufen hast - das bereits bestehende, in 2.7 geschriebene und das neue, in 3.x noch zu entwickelnde? Und du möchtest Daten vom einen an das andere übergeben?

    Da gäbe es verschiedene Möglichkeiten: Wenn die Daten in größeren Zeitabständen anfallen und gesammelt übergeben werden, könntest du sie in eine Datei-Schnittstelle (z.B. CSV oder JSON) schreiben. Falls die Daten laufend übertragen werden müssen (z.B. Realtime-Messung), könntest du IPC (Interprocess Communication) ins Auge fassen.

    Grüße, hadi

  • Falls die Daten laufend übertragen werden müssen (z.B. Realtime-Messung)

    Nur damit hier keine falschen Begrifflichkeiten aufkommen auf einem Pi mit Raspbian ist alles, was mit Realtime zu tun hat, noch dazu aus einer Interpretersprache, nicht möglich. Weder Messung noch Übertragung in irgendeiner Form.

    //EDIT: was Du meinst ist eine live Übertragung ...

    cu,

    -ds-

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!