Python Funktionen/Klassen von C++ aus nutzen
Hi, ich wuerde gerne den beautifulsoup parser nutzen und zwar aus C++ Code heraus. Leider war meine suche nach Moeglichkeiten Python Funktionen oder Klassen direkt aus C++ zu nutzen noch nicht von Erfolg gekroent, alles was sich finden lies war die C API und die ist gelinde gesagt ein Scherz. Gibts da Moeglichkeiten? Ich hab leider nicht die Moeglichkeit (zum aktuellen Zeitpunkt) statt C++ Python fuers Programm zu nutzen... Andreas -- Be cheerful while you are alive. -- Phathotep, 24th Century B.C. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Andreas Pakulat wrote:
Hi,
ich wuerde gerne den beautifulsoup parser nutzen und zwar aus C++ Code heraus. Leider war meine suche nach Moeglichkeiten Python Funktionen oder Klassen direkt aus C++ zu nutzen noch nicht von Erfolg gekroent, alles was sich finden lies war die C API und die ist gelinde gesagt ein Scherz.
Warum?
Gibts da Moeglichkeiten? Ich hab leider nicht die Moeglichkeit (zum aktuellen Zeitpunkt) statt C++ Python fuers Programm zu nutzen...
Embedding. Lass den BeautifulSoup in einem eingebetteten Interpreter laufen. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Evtl. ist es auch einfacher, das eigene Programm in eine Python-Erweiterung, eine DLL oder ein shared object zu packen und dieses dann von python aus auf zu rufen. Einfache Anworten zu diesen Thema gibts leider nicht :) cya Gerald Diez B. Roggisch schrieb: | Andreas Pakulat wrote: | | > Hi, | > | > ich wuerde gerne den beautifulsoup parser nutzen und zwar aus C++ Code | > heraus. Leider war meine suche nach Moeglichkeiten Python Funktionen | > oder Klassen direkt aus C++ zu nutzen noch nicht von Erfolg gekroent, | > alles was sich finden lies war die C API und die ist gelinde gesagt | > ein Scherz. | | | Warum? | | > Gibts da Moeglichkeiten? Ich hab leider nicht die Moeglichkeit (zum | > aktuellen Zeitpunkt) statt C++ Python fuers Programm zu nutzen... | | | Embedding. Lass den BeautifulSoup in einem eingebetteten Interpreter | laufen. | | | MfG Diez | | _______________________________________________ | python-de maillist - python-de@python.net | http://python.net/mailman/listinfo/python-de - -- GPG-Key: http://keyserver.veridis.com:11371/search?q=0xA140D634 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFDgM0AEDg9cqFA1jQRAs0PAJ4uHrNsZPpmMnlLcj+dmS2EbZmNoQCfRSxJ eW45OA/Pga3AxcIlXIkYtr0= =PXGr -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Gerald Klix schrieb:
Evtl. ist es auch einfacher, das eigene Programm in eine Python-Erweiterung, eine DLL oder ein shared object zu packen und dieses dann von python aus auf zu rufen.
Einfache Anworten zu diesen Thema gibts leider nicht :)
Wo wir gerade schon mal mit den komplizierten Antworten angefangen haben, es gibt natürlich auch immer noch die Möglichkeit, den Python-Code von Jython freezen zu lassen und das Ganze dann (inklusive Jython-Jar) durch den GCJ zu jagen. Dann kommt am Ende ein zugegebenermaßen recht großes, aber dafür natives Kompilat heraus, das sich wie jedes andere auch verwendet lässt. Und wer für sein C/C++ Programm ohnehin den GCC verwendet, sollte mit dem GCJ auch wenig Probleme haben. Die Frage, ob sich das lohnt, muss aber jeder für sich entscheiden. Stefan _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 21.11.05 11:49:17, Stefan Behnel wrote:
Gerald Klix schrieb:
Evtl. ist es auch einfacher, das eigene Programm in eine Python-Erweiterung, eine DLL oder ein shared object zu packen und dieses dann von python aus auf zu rufen.
Einfache Anworten zu diesen Thema gibts leider nicht :)
Wo wir gerade schon mal mit den komplizierten Antworten angefangen haben, es gibt natürlich auch immer noch die Möglichkeit, den Python-Code von Jython freezen zu lassen und das Ganze dann (inklusive Jython-Jar) durch den GCJ zu jagen. Dann kommt am Ende ein zugegebenermaßen recht großes, aber dafür natives Kompilat heraus, das sich wie jedes andere auch verwendet lässt. Und wer für sein C/C++ Programm ohnehin den GCC verwendet, sollte mit dem GCJ auch wenig Probleme haben.
Die Frage, ob sich das lohnt, muss aber jeder für sich entscheiden.
Das hoert sich nach Von hinten durch die Brust ins Auge geschossen an, nicht sehr sinnvoll IMHO. Andreas -- Communicate! It can't make things any worse. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Andreas Pakulat schrieb:
On 21.11.05 11:49:17, Stefan Behnel wrote:
Wo wir gerade schon mal mit den komplizierten Antworten angefangen haben, es gibt natürlich auch immer noch die Möglichkeit, den Python-Code von Jython freezen zu lassen und das Ganze dann (inklusive Jython-Jar) durch den GCJ zu jagen. Dann kommt am Ende ein zugegebenermaßen recht großes, aber dafür natives Kompilat heraus, das sich wie jedes andere auch verwendet lässt. Und wer für sein C/C++ Programm ohnehin den GCC verwendet, sollte mit dem GCJ auch wenig Probleme haben.
Die Frage, ob sich das lohnt, muss aber jeder für sich entscheiden.
Das hoert sich nach Von hinten durch die Brust ins Auge geschossen an, nicht sehr sinnvoll IMHO.
Für dich (bzw. dein momentanes Problem) vielleicht nicht. Ansonsten haben schon ganz andere ziemliche Klimmzüge unternommen, um Code-Integration hinzubekommen. http://pylucene.osafoundation.org/ http://www.cs.nyu.edu/zilin/pyswt/pmwiki.php?n=PySWT.Introduction Den Ergebnissen nach zu urteilen kann sich sowas durchaus lohnen. Stefan _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 20.11.05 20:22:40, Gerald Klix wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Evtl. ist es auch einfacher, das eigene Programm in eine Python-Erweiterung, eine DLL oder ein shared object zu packen und dieses dann von python aus auf zu rufen.
Nein ist es nicht, das was in Python programmiert werden (soll/muss) ist eine Hilfsfunktion fuer das Programm, von daher kann ich mir diese Richtung nicht vorstellen. Andreas -- You will be run over by a bus. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 20.11.05 20:15:37, Diez B. Roggisch wrote:
Andreas Pakulat wrote:
Hi,
ich wuerde gerne den beautifulsoup parser nutzen und zwar aus C++ Code heraus. Leider war meine suche nach Moeglichkeiten Python Funktionen oder Klassen direkt aus C++ zu nutzen noch nicht von Erfolg gekroent, alles was sich finden lies war die C API und die ist gelinde gesagt ein Scherz.
Warum?
Weil mein erster (recht fluechtiger) Blick nur Funktionen zu Tage brachte die Python Code ausfuehren. Was natuerlich fuer mich voellig unnuetz ist...
Gibts da Moeglichkeiten? Ich hab leider nicht die Moeglichkeit (zum aktuellen Zeitpunkt) statt C++ Python fuers Programm zu nutzen...
Embedding. Lass den BeautifulSoup in einem eingebetteten Interpreter laufen.
Ok, mal schauen was die Python-Doku dazu sagt, jedenfalls steht in "Python in a Nutshell" nahezu nichts drin. Andreas -- You'll wish that you had done some of the hard things when they were easier to do. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Weil mein erster (recht fluechtiger) Blick nur Funktionen zu Tage brachte die Python Code ausfuehren. Was natuerlich fuer mich voellig unnuetz ist...
Äh - das wäre doch genau was du willst? Du kannst mit der C-Api Wandlung von python zu C/C++-Objekten und zurück zu machen. Und diese Objekte dann einem eingebetteten Interpreter zum Frass vorwerfen. Wie genau kommt drauf an - wahrscheinlich musst du dafür eine Extension bauen, die von python aus aufgerufen wird. Oder du übergibst das per pipe. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
--On 20. November 2005 19:56:17 +0100 Andreas Pakulat <apaku@gmx.de> wrote:
Hi,
ich wuerde gerne den beautifulsoup parser nutzen und zwar aus C++ Code heraus. Leider war meine suche nach Moeglichkeiten Python Funktionen oder Klassen direkt aus C++ zu nutzen noch nicht von Erfolg gekroent, alles was sich finden lies war die C API und die ist gelinde gesagt ein Scherz.
Gibts da Moeglichkeiten? Ich hab leider nicht die Moeglichkeit (zum aktuellen Zeitpunkt) statt C++ Python fuers Programm zu nutzen...
Du kannst den Python-Interpreter in Deine eigene Applikation einbetten im Gegensatz zur Verwendung von C/C++ Libs in Python. Soweit ich mich erinnere ist das hinreichend gut in der Python Dokumentation beschrieben (Embedding wäre das Stichwort). -aj _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 20.11.05 19:56:17, Andreas Pakulat wrote:
ich wuerde gerne den beautifulsoup parser nutzen und zwar aus C++ Code heraus. Leider war meine suche nach Moeglichkeiten Python Funktionen oder Klassen direkt aus C++ zu nutzen noch nicht von Erfolg gekroent, alles was sich finden lies war die C API und die ist gelinde gesagt ein Scherz.
Gibts da Moeglichkeiten? Ich hab leider nicht die Moeglichkeit (zum aktuellen Zeitpunkt) statt C++ Python fuers Programm zu nutzen...
Da der Mailman mir offensichtlich die Antwort von Diez vorenhalten will mache ich das mal so: On 20.11.05 22:24:17, Diez B. Roggisch wrote:
Weil mein erster (recht fluechtiger) Blick nur Funktionen zu Tage brachte die Python Code ausfuehren. Was natuerlich fuer mich voellig unnuetz ist...
Äh - das wäre doch genau was du willst?
Nein, das was ich ueberflogen habe nimmt einen String interpretiert diesen als Python Code und fuehrt diesen aus. Ich kann keine Funktionen separat aufrufen, ich kann keine Ergebnisse auslesen ausser den Return-Wert in Form eines ints. Wie sich ja herausstellte war das ebend nur auf den 1. Blick so und ich werde mir das naeher anschauen. Andreas -- There is a fly on your nose. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (5)
-
Andreas Jung
-
Andreas Pakulat
-
Diez B. Roggisch
-
Gerald Klix
-
Stefan Behnel