Hallo liebe Schlangenbeschwörer,
ich habe eine Frage zu pydev: Ich muss eine Reihe von Modulen einbinden, die ich nur kompiliert zur Verfügung habe (nur die .pyc files, sonst nix). Bisher habe ich mit idle gearbeitet und hatte dort auch Autovervollständigung zur Verfügung - allerdings mit einer etwas verbastelten idle-Version von einem Kollegen (ich weiß gar nicht ob idle das von Haus aus mitbringt). Kann ich in pydev (eclipse 3.5.1) auch ohne den Quellcode zu haben dieses autocomplete irgendwie erreichen? Wobei mich eigentlich noch viel mehr nervt, dass eclipse ständig undefined-variable-Fehler markiert weil es die Klassen in den eingebundenen Modulen wohl nicht findet (ok, das kann man notfalls aufheben - stört trotzdem). Kompiliert aber alles einwandfrei.
Ich habe die Pfade mit den kompilierten Dateien auch im pydev-PYTHONPATH in den Project-Properties eingetragen.
Kann man überhaupt mit kompilierten Modulen so arbeiten wie ich mir das vorstelle? Kriegt man bei sowas immer diese Fehler? Ich habe bisher immer nur mit eigenem oder quelloffenem zeugs und ohne eclipse gearbeitet.
Danke vorweg und Viele Grüße
Tim
P.S.: Ich hoffe mal das hier ist das richtige Unterforum
pydev autocomplete, unresolved imports, kompilierte Module
Ich gehe davon aus, dass Pydev dergleichen nicht beherrscht. Zwar ist es nicht unmöglich, sondern eigentlich sogar relativ einfach, kompilierten Bytecode zu analysieren, implementieren muss man es trotzdem. Angesichts dessen, das die Verteilung kompilierter Python-Module eher ungewöhnlich ist, glaube ich nicht, dass Pydev kompilierte Python-Module analysieren kann.
Hallo lunar,
danke für die Antwort. Der Autor möchte im konkreten Fall seinen Quellcode nicht herausgeben. Analyse hab ich noch nie gemacht - bisher alles immer nur mit quellcode gehabt. Ich frage mich nur wie das dann in idle funktioniert. Da müssen doch irgendwie die ganzen Klassen- und Variablennamen bekannt gemacht worden sein. Ich nehme mal an es ist eine Erweiterung von idle mit der ich da immer gearbeitet habe. Bisher hatte ich nur keine Zeit mir das mal in Ruhe anzusehen.
danke für die Antwort. Der Autor möchte im konkreten Fall seinen Quellcode nicht herausgeben. Analyse hab ich noch nie gemacht - bisher alles immer nur mit quellcode gehabt. Ich frage mich nur wie das dann in idle funktioniert. Da müssen doch irgendwie die ganzen Klassen- und Variablennamen bekannt gemacht worden sein. Ich nehme mal an es ist eine Erweiterung von idle mit der ich da immer gearbeitet habe. Bisher hatte ich nur keine Zeit mir das mal in Ruhe anzusehen.
Eventuell kannst du ein Modul wie pydoc drüber laufen lassen, oder es von ihm machen lassen, so kennst du zumindest die API. Den Link kannst du ihm dazu gleich mal zeigen http://wiki.python.de/Warum%20ist%20que ... 0b%C3%B6se
Ansonsten kann man den Code auch "einfach" Dekompilieren.
Ansonsten kann man den Code auch "einfach" Dekompilieren.
@Xynon1: In der Theorie, doch praktisch gibt es kein freies Programm, welches Bytecode von Python 2.4 oder neuer in Python-Quelltext übersetzen kann.
Danke für die Tipps. Ich habe mal mit einem online-tool (depython.com) testweise eines meiner eigenen module dekompiliert. Das sollte reichen um damit in eclipse arbeiten zu können.
Hat jemand einen Tipp für einen nicht online-basierten Python-Decompiler? Ich bin schon auf einige Tools gestoßen, oft aber nur Disassemblierer - das hilft nicht viel. Und ich möchte ungerne irgendwas hochladen.
Hat jemand einen Tipp für einen nicht online-basierten Python-Decompiler? Ich bin schon auf einige Tools gestoßen, oft aber nur Disassemblierer - das hilft nicht viel. Und ich möchte ungerne irgendwas hochladen.
An der Stelle hätte ich mal eine Frage --> Warum eigentlich?
Es heißt immer wieder Bytekompilierter Code sei recht einfach zu lesen bzw. Rückzuwandeln, aber offensichtlich ist es das nun ja nicht so einfach wie es sich meist anhört. Also meine Frage, was macht es eigentlich so schwer den Pythonbytecode Rückzuwandeln? oder hat sich bisher einfach niemand die Mühe gemacht, das mal sauber in Angriff zu nehmen, einige Ansätze gibt es ja.
Es heißt immer wieder Bytekompilierter Code sei recht einfach zu lesen bzw. Rückzuwandeln, aber offensichtlich ist es das nun ja nicht so einfach wie es sich meist anhört. Also meine Frage, was macht es eigentlich so schwer den Pythonbytecode Rückzuwandeln? oder hat sich bisher einfach niemand die Mühe gemacht, das mal sauber in Angriff zu nehmen, einige Ansätze gibt es ja.
@Xynon1: Ich gehe davon, dass es bisher noch niemandem die Mühe wert war. Wie oft ist die Rückübersetzung von Python-Bytecode denn schon nötig, oder anders gefragt, wie oft hat man schon den Bytecode ohne den zugehörigen Quelltext?
Nie - bis auf der Fall da oben^^
Dennoch finde ich es Merkwürdig, denn es gibt ja auch Leute die Brainfuck Interpreter schreiben, diese Sprache sogar noch nutzen und sie anderen noch auf die Nase binden Also wieso kein Dekompiler für Pythonbytecode(auch für die neuen Pythonversionen)
Dennoch finde ich es Merkwürdig, denn es gibt ja auch Leute die Brainfuck Interpreter schreiben, diese Sprache sogar noch nutzen und sie anderen noch auf die Nase binden Also wieso kein Dekompiler für Pythonbytecode(auch für die neuen Pythonversionen)