Forum: Mikrocontroller und Digitale Elektronik Python Skript in c++ ausführen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Salem S. (Firma: HTW) (hamsal)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute ! Ich arbeite an einem Projekt "Lego sortieren" mit dem 
Jetson Nano. ich habe ein neuronales Netz in Python trainiert und 
getestet zur Formerkennung der Lego. Es funktioniert soweit gut. Da 
andere Subsysteme unseres Legos Projekt, deren Code in C++ geschrieben 
habe und ich möchte erstmal meinen Teil nicht in C++ umschreiben sondern 
ein Code in C++ schreiben, der mein in Python trainiertes Netz ausführt 
und dass ich auf einige variable zugreife und damit weiterarbeiten kann. 
Meine Frage lautet: Wie kriegt man sowas hin ? Ist das überhaupt möglich 
? hättet ihr einen Weg für mich bitte ?

von was (Gast)


Bewertung
0 lesenswert
nicht lesenswert
"Launch Python script from C++" googlen.

Falls du eh schon ROS benutzt, hast du sowieso kein Problem. Wenn nicht, 
wäre es aber mit Kanonen auf Spatzen geschossen damit jetzt anzufangen.

von Nop (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn Du auf einem Posix-System bist (z.B. Linux), kannst Du Dir mal 
popen() ansehen.

von Yalu X. (yalu) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Neben den bereits genannten Möglichkeiten, bei denen das Python-Programm
als externer Prozess gestartet und anschließend mit diesem über Pipes
o.ä. kommuniziert wird, kannst du den Python-Interpreter auch innerhalb
deines C++-Programms laufen lassen. Das geht direkt über das von Python
bereitgestellte API

  https://docs.python.org/3/extending/embedding.html

oder über den darauf aufbauenden Boost-Wrapper:

  https://www.boost.org/doc/libs/1_73_0/libs/python/doc/html/tutorial/tutorial/embedding.html

Dadurch wird der Kommunikations-Overhead verringert, was bei deiner
Anwendung aber vermutlich nicht so wichtig ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.