python c api & pyinstaller bzw py2exe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
menno
User
Beiträge: 9
Registriert: Freitag 10. Februar 2006, 10:19

python c api & pyinstaller bzw py2exe

Beitragvon menno » Freitag 4. Mai 2007, 13:38

hallo zusammen,

um eine spezielle hardware mit python verwenden zu können, habe ich mir mit dem bcc55 ein einfaches python-wrapper-modul, für die hardware-api (c-header-file und windows-dll) gebastelt.
verwende ich nun mein python-modul in einem skript und führe dieses skript direkt per interpreter aus, funktioniert alles wunderbar; baue ich mir aber eine exe-file mit py2exe oder dem pyinstaller läuft's leider nicht. das python-skript startet zwar, beim aufruf der init-funktion der api bleibt es aber hängen und die cpu-last schnellt auf 100% hoch.
ein beenden der anwendung ist nur per hartem task-kill möglich.

habt ihr irgend eine idee, woran dies liegen könnte, und wie ich doch zu meiner gewünschten exe (aus python heraus) komme?

thnx
menno
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Samstag 5. Mai 2007, 11:02

Dürfte eigentlich nicht passieren, da die executable auch nur ein gepackter Interpreter ist.
Hast du es mal ohne "Single File" gemacht?
BlackJack

Beitragvon BlackJack » Samstag 5. Mai 2007, 13:24

Ist denn auch alles notwendige "eingepackt"? Hat der bcc vielleicht irgendwelche Laufzeitbibliotheken die man dazupacken müsste?
menno
User
Beiträge: 9
Registriert: Freitag 10. Februar 2006, 10:19

Beitragvon menno » Samstag 5. Mai 2007, 18:11

Hallo,

vielen Dank für eure Antworten.

@Sr4l: ... dachte ich auch. Ich hab's trotzdem als 'SingleFile' und 'Normal', als 'Windowed' und 'Console' versucht. Hat aber alles nichts gebracht.

@BlackJack: Keine Ahnung ob der BCC zusätzliche Libs benötigt. Aber soweit ich weiss sind *.pyd-Files 'umbenannte' *-dll-Files und wieso sollten da spezielle Laufzeitumgebungen erforderlich sein? Und wie gesagt, wenn ich meine Python-Anwendung direkt im installierten Interpreter ausführe funktioniert alles.

Sonst irgendwelche Ideen? Ich weiss leider echt nicht mehr weiter.

menno
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 5. Mai 2007, 18:14

menno hat geschrieben:Aber soweit ich weiss sind *.pyd-Files 'umbenannte' *-dll-Files und wieso sollten da spezielle Laufzeitumgebungen erforderlich sein?

Weil der Compiler eventuell automatisch gegen irgendwelche Libs linkt, die dann nicht verfügbar sein könnten. So in etwa wie alle Cygwin-Programme die ``cygwin1.dll`` benötigen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
menno
User
Beiträge: 9
Registriert: Freitag 10. Februar 2006, 10:19

Beitragvon menno » Montag 7. Mai 2007, 06:33

Aber das würde ja auch bedeuten, dass meine anwendung auch dann nicht funktioniert, wenn ich sie direkt im interpreter ausführe ... tut sie aber.
Und das die cpu-last bei der generierten EXE auf 100% steigt, weil eine laufzeitumgebung fehlt kann ich mir auch nicht vorstellen. Ich hätte da dann eher mit einer fehlermeldung gerechnet.
menno
User
Beiträge: 9
Registriert: Freitag 10. Februar 2006, 10:19

Beitragvon menno » Montag 7. Mai 2007, 11:40

OK.
Hat sich erledigt :o)

Ursache für mein Problem war, das PyInstaller und Py2Exe (nur) eine bestimmte DLL der Hardware-API mit ins DIST gepackt haben.
Ergänze ich hier alle nötigen Files passt es.

Danny

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]