Seite 1 von 1
python-skripte in c importieren
Verfasst: Mittwoch 11. Oktober 2006, 21:03
von murph
hi!
ist es möglich, python-skripte in c zu importieren?
oder muss man den pythonskript immer als subprocess von dem c-programm ausführen und dann das ergebnis über ein anderes medium (sockets, textdateien, ...) wieder zurücktransferieren?
Verfasst: Mittwoch 11. Oktober 2006, 22:45
von BlackJack
Ich habe es mal nach `Allgemeine Fragen` verschoben weil das ganz bestimmt nicht Offtopic ist.
Du kannst den Python Interpretierer in C Programme einbetten und über die entsprechende API auch Python-Funktionen aufrufen und Daten austauschen. In der Dokumentation gibt's über "embedding" ein eigenes Kapitel.
Verfasst: Donnerstag 12. Oktober 2006, 16:02
von murph
@blackjack:
das war das erste mal seit langer zeit, dass ich mir wirklich unsicher war.
sonst wollen es die leute ja immer andersrum.
Verfasst: Donnerstag 12. Oktober 2006, 17:37
von birkenfeld
Oder das ganze Skript mit Pyrex in C umwandeln und kompilieren.
Verfasst: Freitag 13. Oktober 2006, 13:34
von george
Hey,
bin gerade dabei dieses Thema zu bearbeiten. Ich möchte aus C heraus Funktionalität aus Python aufrufen.
Zum Probieren haben ich jetzt mal das Beispiel aus dem Kapitel "embedding"
genutzt.
Code: Alles auswählen
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
und mit gcc kompiliert.
Ständig bekommen ich die Fehlermeldung vom Linker:
[Linker error] undefined reference to `_imp__Py_Initialize'
Darauf hin habe ich mal im Internet gesucht und den Hinweis gefunden das man noch einmal mit -L"Python24/libs" die Library mit linken soll.
Dies habe ich gemacht. Aber ohne Erfolg.
Habt ihr eine Idee???
greets george
Verfasst: Freitag 13. Oktober 2006, 16:05
von BlackJack
``-L`` gibt nur Pfade an in denen gesucht wird. Linken einer Bibliothek geht mit ``-l`` gefolgt von dem Bibliotheksnamen ohne führendes "lib". Also bei mir gehts zum Beispiel mit folgender Zeile:
$ gcc -o test test.c -I/usr/include/python2.4 -lpython2.4
Re: python-skripte in c importieren
Verfasst: Freitag 13. Oktober 2006, 16:49
von jens
murph hat geschrieben:ist es möglich, python-skripte in c zu importieren?
Wobei... Normalerweise würde man dass IMHO ehr anders herrum machen! Also CPU-Lastige Sachen, die einfach nicht schnell genug werden wollen, in C auszulasten
Wobei... Man sollte erstmal warten, ob die Performance wirklich nicht ausreicht! Ist nämlich meist nicht der Fall...
Verfasst: Sonntag 15. Oktober 2006, 18:52
von murph
mir war schon klar, dass man das eher andersrum machen würde,
aber manchmal sind die sachen zu komplex, um sie in c umzuschreiben.
dann wäre es schlauer, die sachen in ein c-skript zu importieren.
(das dreht sich um größere projekte, wo es bereits python-teile gibt)