HAllo!
genau sowas suche ich... ich hab hier python source - und dieser soll am ende c oder c++ code sein. falls es kein tool geben sollte, würde auch python -> java -> c/c++ gehen.
heissen dank, für jeden tipp!
greets, Nik
HAllo!
genau sowas suche ich... ich hab hier python source - und dieser soll am ende c oder c++ code sein. falls es kein tool geben sollte, würde auch python -> java -> c/c++ gehen.
heissen dank, für jeden tipp!
greets, Nik
I haven't lost my mind - It's somewhere on a backup-disc
Ist Swig nicht gerade für umgekehrt?
MfG Peschmä
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
Mir ist keine solche Lösung bekannt. Allerdings sollte es zumindest für kleinere Python-Projekte kein Problem darstellen so etwas selbst zu entwickeln.
Zu diesem Zweck müsstest du lediglich ein kleines C-prog schreiben, dass Python embedded (wie auch immer die korrekte deutsche Übersetzung hierzu sein mag) und dann den gewünschten Python code übergeben bzw. direkt im Quellcode einbetten (embedded hört sich dennoch besser an).
Ein paar URL's in denen die Ansätze zu einer möglichen Umsetzung erläutert sind;
http://python.fyxm.net/doc/2.2.3/ext/ext.html
http://www.python.org/doc/1.5.2p2/api/api.html
http://davidf.sjsoft.com/mirrors/mcm...inc/embed.html
Allerdings ist das Resultat dann auch nicht viel anders, als wenn du "python.exe mypythonfile.py" in eine Batchdatei schiebst und diese dann ausführst
Geändert von dipesh (13-03-2005 um 23:04 Uhr)
s/(win|dos)/linux/g; #just another fixed pain in the (gl)ass
hallo!Zitat von dipesh
genau das hab ich momentan. das problem ist nur, dass ich den python code unbedingt scramblen muß. dieses thema ist ca. 4 millionen mal durchdiskutiert worden - und es scheint keine lösung für ein in c "eingebettetes" python programm zu geben.
deshalb ist halt die idee den python code in c oder c++ umzuwandeln, damit erporbte und funktionierende lösungen greifen.
greets, Nik
Natürlich geht das einbetten von Python-code in C/C++. Siehe dazu das Beispiel auf http://python.fyxm.net/doc/2.2.3/ext...embedding.htmlZitat von Flightbase
Das Ganze funktioniert sogar sehr gut. Mit http://cxx.sourceforge.net/ und http://boost.org/libs/python/doc/ existieren sogar zwei sehr mächtige Möglichkeiten, nicht direkt mit dem Python C API arbeiten zu müssen (für den Fall, dass der Bedarf besteht nicht einfach lediglich Python-code auszuführen, sondern in C/C++ mit Python zu arbeiten und umgekehrt). Ein so eingebetteter Python-Code ist somit Bestandteil deiner C/C++-Anwendung und der Python-code string/char* wird somit einkompiliert (und kann natürlich vorher auch gescrambelt werden und dann kurz vor Übergabe an z.B. PyRun "entschlüsselt" werden um ein disassemblieren zumindest zu erschweren).
Falls du Qt einsetzt, hast du mit mir genau den richtigen Ansprechpartner gefunden, da ich mich seit gut 1/2 Jahr mit der Thematik beschäftige (siehe http://www.dipe.org/kross/, QVariant, signals/slots/Q_PROPERTY's/etc. sind bereits gewrappt, LGPL) und mich in Python verliebt habe. Bei Fragen, also einfach fragen
p.s. Der beste Weg wäre natürlich den relevanten Python-Code in ein eigenes Python C/C++ Modul zu verfrachten und dieses dann über import in einer *.py-Datei zu nutzen. Zumindest wird es so von der Python-Machern empfohlen; better extend as embed oder so.
Geändert von dipesh (14-03-2005 um 14:44 Uhr)
s/(win|dos)/linux/g; #just another fixed pain in the (gl)ass
uhm. nochmal. es ist bereits eingebettet. das war aber nicht gut, da wir den code scramblen müssen. das gibt python nicht her. deshalb wollen wir von python weg und den python code zu c/c++ machen.
dafür suche ich ein tool. am ende soll also alles natives c/c++ sein.
greets, Nik
Es wäre schön, wenn du mir die Bedeutugn des Wortes "gescrambelt" etwas genauer erläuterst, da ich das falsch zu verstehen scheine.
Bei der vorher erläuterten Lösung ist übrigens am Ende _alles_ C/C++ ... Wenn es dir darum geht, den Python code los zu werden und am Ende kein Python (nicht mal libpython) zu nutzen, dann sehe ich leider keinen anderen Weg, als den Python-Code händisch nach C/C++ zu transferieren...
/edit
Vielleicht; http://effbot.org/zone/python-compile.htm
Geändert von dipesh (14-03-2005 um 15:02 Uhr)
s/(win|dos)/linux/g; #just another fixed pain in the (gl)ass
Das hört sich nach "Hiding the closed source" anZitat von dipesh
Gruss, Andy
Danke. Genau so hatte ich es verstanden und so war eigentlich auch Beitrag #6 ausgelegt. In dem erwähnten Beispiel lässt sich PyRun_SimpleString() ja beliebiger char* übergeben und dieser kann natürlich beliebig im Sourcecode hinterlegt werden, halt auch "gescrambelt". Ein "descrambling" würde dann den betreffenden Code kurz vor Ausführung wieder zurückverwandeln. Einen wirklichen Schutz vor auslesen stellt das natürlich nicht dar.Zitat von RapidMax
s/(win|dos)/linux/g; #just another fixed pain in the (gl)ass
Könnt ihr nicht einfach den Bytecode (pyc oder sogar pyo) einbetten anstatt des Quelltextes?
fs111
....::::Mein Blag::::....
wir haben den bytecode eingebettet.Zitat von fs111
wir entwickeln jetzt eine eigene lösung, da ein neuschreiben nicht in frage kommt.
vielen dank für eure hilfe!
greets, Nik
Lesezeichen