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?
python-skripte in c importieren
http://www.cs.unm.edu/~dlchao/flake/doom/
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.
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.
@blackjack:
das war das erste mal seit langer zeit, dass ich mir wirklich unsicher war.
sonst wollen es die leute ja immer andersrum.
das war das erste mal seit langer zeit, dass ich mir wirklich unsicher war.
sonst wollen es die leute ja immer andersrum.
http://www.cs.unm.edu/~dlchao/flake/doom/
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Oder das ganze Skript mit Pyrex in C umwandeln und kompilieren.
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.
und mit gcc kompiliert.
Ständig bekommen ich die Fehlermeldung vom Linker:
Dies habe ich gemacht. Aber ohne Erfolg.
Habt ihr eine Idee???
greets george
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;
}
Ständig bekommen ich die Fehlermeldung vom Linker:
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.[Linker error] undefined reference to `_imp__Py_Initialize'
Dies habe ich gemacht. Aber ohne Erfolg.
Habt ihr eine Idee???
greets george
``-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
$ gcc -o test test.c -I/usr/include/python2.4 -lpython2.4
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Wobei... Normalerweise würde man dass IMHO ehr anders herrum machen! Also CPU-Lastige Sachen, die einfach nicht schnell genug werden wollen, in C auszulastenmurph hat geschrieben:ist es möglich, python-skripte in c zu importieren?

Wobei... Man sollte erstmal warten, ob die Performance wirklich nicht ausreicht! Ist nämlich meist nicht der Fall...
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)
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)
http://www.cs.unm.edu/~dlchao/flake/doom/