Hallo zusammen, ich arbeite gerade an einem Projekt in dem das Robot Operating System (ROS Melodic) eingesetzt wird. ROS unterstützt in der aktuellen Version zur Zeit nur Python 2. Nun möchte ich einen Sensor auslesen, allerdings kann die für diesen Sensor benötigte Bibliothek nur unter Python 3 verwendet werden. Um dieses Problem zu lösen, möchte ich den Hauptskript (von ROS ausführbar) in Python 2 schreiben, dieser übergibt Argumente an den Python 3 Skript in dem die Sensordaten erfasst werden und ausgewertet werden. Diese Daten möchte ich dann wieder zurück an den Hauptskript übermitteln. Mir ist bewusst, dass diese Variante nicht besonders effektiv ist, allerdings bleibt mir aktuell nichts anderes übrig. Kann mir jemand sagen wie ich dieses Vorhaben am besten umsetzen kann?
genauso wie man x-beliebiges anderes Programm startet? schau dir mal subprocess modul an
Python 2 ist tot: https://www.python.org/doc/sunset-python-2/ Bei ROS scheint wohl in einem Repo für Debian und Ubuntu zu geben, wobei Ubuntu die Hauptplatform ist? In Debian wird Python 2 entfernt: https://lists.debian.org/debian-devel-announce/2019/11/msg00000.html Das betrifft dann auch Ubuntu: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-20.04-Continue-Py2-Drop (Im Focal Fossa Release haben die das wohl aber noch nicht vollständig geschafft: https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=python2) ROS wird zwar wohl noch ein paar Jährchen haben, bis ihr verwendetes Ubuntu Release EOL sein wird, aber bis spätestens 2030 / 2032 werden sie wohl oder übel umstellen müssen. Falls möglich, also einfach noch eine weile Abwarten.
Die aktuelle LTS ROS Version ist hoffentlich auch die letzte mit Python 2, denn die neue LTS Version, die diesen Monat auch erscheinen soll unterstützt Python 3. Da ich im aktuellen Projekt aber noch die "alte" Version verwende muss ich damit klar kommen. Vielen Dank für den Tipp zu subprocess, das schaue ich mir mal an. Viele Grüße Felix
Felix L. schrieb: > dieser übergibt Argumente an den > Python 3 Skript in dem die Sensordaten erfasst werden und ausgewertet > werden. Und wie führt Robot Operating System das Python 3 Skript aus? > ROS unterstützt in der aktuellen Version zur Zeit nur Python 2
Karl schrieb: > Felix L. schrieb: >> dieser übergibt Argumente an den >> Python 3 Skript in dem die Sensordaten erfasst werden und ausgewertet >> werden. > > Und wie führt Robot Operating System das Python 3 Skript aus? > >> ROS unterstützt in der aktuellen Version zur Zeit nur Python 2 Wenn es so funktioniert wie ich es mir vorstelle, dann gar nicht. Das ROS führt den Python 2 Skript aus, dieser den Python 3, welcher vom darüberliegende Linux ausgeführt wird. Die ermittelten Daten gehen dann zurück an de Python 2 Skript und können vom ROS weiterverarbeitet werden. So die Theorie, ich werde dies auf jeden Fall testen.
Mein Fehler. Ich dachte "Robot Operating System" wäre das Betriebssystem.
Felix L. schrieb: > denn die neue LTS Version, die diesen Monat auch erscheinen soll > unterstützt Python 3. > Da ich im aktuellen Projekt aber noch die "alte" Version verwende muss > ich damit klar kommen. Hier würde ich ganz klar sagen: Umstellen! Bevor du dich jetzt noch sinnlos mit Py2 vs. Py3 rumärgerst, lieber einmal etwas Zeit investieren und das komplett auf Python3 umstellen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.