Seite 1 von 1
py2exe Dateien in .exe einbetten
Verfasst: Sonntag 13. September 2009, 12:45
von droptix
Ich schreibe gerade mit Python einen Wrapper für die datei foo.exe. Der Wrapper wird mittels py2exe die Datei bar.exe gewandelt. Momentan steht in bar.exe hardcoded drin, dass sich foo.exe unter einem bestimmten Pfad befindet.
Kann ich mit py2exe foo.exe in bar.exe einbetten, so dass ich unabhängig von diesem Pfad bin? Also dass sich foo.exe in bar.exe drin befindet und dadurch immer gefunden wird?
Wenn ja, wie geht das?
Ach ja: und wie muss ich dann foo.exe aufrufen?
Verfasst: Sonntag 13. September 2009, 15:30
von microkernel
Wenn du die Source von foo.exe hast könntest du sie doch einfach in bar.py einfügen.
Wenn du nicht die Source von foo.exe hast könntest du dir den exe-Code von foo.exe ziehen und diesen dann als string in dein Programm speichern. Damit kannst du die exe dann immer erzeugen wenn du sie brauchst.
Ich stell mir das dann so vor (ungetestet):
Code: Alles auswählen
fooSource = "....exe code..."
# Zum erzeugen der exe
tmpFoo = open("foo.exe", "wb")
tmpFoo.write(fooSource)
tmpFoo.close()
# Zum starten der exe
os.system("start foo.exe")
...
# Und schließlich zum löchen der exe
os.system("del foo.exe")
Verfasst: Sonntag 13. September 2009, 17:47
von droptix
Schonmal keine schlechte Idee, aber ich hab mir das eleganter vorgestellt. Ich möchte nicht den Binärcode erst auf Platte schreiben müssen... ginge da notfalls auch
StringIO?
Ich kenne das von einem "php2exe" Compiler namens
Bambalam. Dort kann man beim Erzeugen der .exe Datei beliebige Ressourcen in die .exe mit einbetten, also ich glaube die werden dann statisch gelinkt. Die Ressource steht dann in der .exe Datei immer zur Verfügung.
Geht sowas auch mit py2exe?
Verfasst: Dienstag 15. September 2009, 15:54
von droptix
Nee, StringIO ist Blödsinn, denn ich kann das Objekt ja nicht wie eine .exe Datei aufrufen...
Bessere Ideen?