Seite 1 von 1
c und python
Verfasst: Donnerstag 22. September 2005, 16:10
von Gast
Hallo zusammen,
wie kann man es aus c heraus realisieren, das bestimmte werte einer Funktion an ein python prog geliefert werden und dieses dann ausgeführt wird?
Hoffe es gibt eine Lösung!
Vielen dank für die Hilfe
Gruß Alex
Verfasst: Donnerstag 22. September 2005, 16:24
von Leonidas
Da gibt es verschiedene Möglichkeiten. Du könnstest zum Beispiel den Python-Interpreter in dein C-Programm einbetten (nicht sonderlich leicht aber sollte zu schaffen sein). Alternativ kannst du auch eine
IPC, am besten mit RPC per XML-RPC, SOAP, CORBA usw. machen, was zumindest von Python-Seite recht einfach zu realisieren ist.
Re: c und python
Verfasst: Donnerstag 22. September 2005, 17:01
von gerold
Anonymous hat geschrieben: wie kann man es aus c heraus realisieren, das bestimmte werte einer Funktion an ein python prog geliefert werden und dieses dann ausgeführt wird?
Hi Alex!
Am einfachsten sollte die Übergabe der Werte über die Kommandozeile sein.
Aufruf des Programms:
Code: Alles auswählen
python pythonprog.py --wert1="das ist text" --wert2=50 --flag1 --flag2
Wenn es sich um viele Daten handelt, dann kannst du ja auch eine Textdatei erstellen, deren Position wiederum als Parameter an die Kommandozeile übergeben wird. Python kann diese Textdatei auslesen und mit diesen Daten etwas anfangen. Ich persönlich mache so etwas gerne mit Yaml-Dateien. Falls Daten zurück gegeben werden müssen, kann der Pfad zur Rückgabedatei ebenfalls bereits vom C-Programm aus als Kommandozeilenparameter übergeben werden.
mfg
Gerold

Verfasst: Donnerstag 22. September 2005, 20:50
von Gast
Hallo zusammen,
erstmal vielen Dank für die super schnellen und interessanten Vorschläge!
Das mit der Komandozeile und der Textdatei hört sich gut an!
Wenn die zwei Dateien (c-prog u. python-prog) aber ständig miteinander kommunizieren müssen, dann muß ich auf CORBA und konsorten umstellen, oder? Es soll nämlich in einer c-Datei die Logik hinterlegt werden, während mit python die Signale an das C-Programm geschickt werden. Wo findet man dazu ein par Quellen?
vielen dank für eure Hilfe
Alex
Verfasst: Freitag 23. September 2005, 06:11
von jens
Warum nicht eigentlich alles in Python und die Teile, die nur mit C gehen (welche das auch immer sind) als Modul für Python realisieren???
Da hast du viel weniger Probleme mit der Kommunikation zwischen C und Python

Verfasst: Freitag 23. September 2005, 08:41
von Gast
Über die Lösung als Modul hab ich schon was gelesen, aber ganz klar ist es mir noch nicht! Gibt es dazu evtl. eine gute Erklärung?
Gruss Alex
Verfasst: Freitag 23. September 2005, 12:27
von heftic
Gast hat geschrieben:Über die Lösung als Modul hab ich schon was gelesen, aber ganz klar ist es mir noch nicht! Gibt es dazu evtl. eine gute Erklärung?
Vieleicht hilft dir ja der folgende Link:
http://www.cl.uni-heidelberg.de/kurs/ss ... ge057.html
Verfasst: Freitag 23. September 2005, 13:07
von Joghurt
Nimm dafür SWIG, das nimmt dir den großteil der Arbeit ab.
www.swig.org
Verfasst: Montag 26. September 2005, 13:22
von ProgChild
Die Standard
Python Doku ist da eigentlich nicht schlecht.
Eine sehr verständlich Einführung findet sich auch
hier.
Den Code solltest du mit den Distutils übersetzten.
Edit (Leonidas): Zweiten Post wie gewünscht gelöscht.