PYthon als Skriptsprache

10/04/2013 - 07:37 von renegrothmann | Report spam
Ich versuche derzeit Python als Skriptsprache für mein Projekt Euler Math Toolbox einzusetzen. Erste Erfolge sind ermutigend, wenngleich die Geschwindigkeit nicht ganz an C heranreicht.

Aber es gibt folgende Probleme:

Ich binde Python27.lib und die Include-Dateien von Python in mein C++-Projekt ein (Visual C++ 2010). Danach làuft alles wie erwartet.

Wenn ich das Programm ausleifere, startet es nicht (Python27.dll missing). Kopiere ich Python27.dll in das Programmverzeichnis, so startet das Programm. Beim Aufruf von Py_init crashed es aber.

Installiert man Python27 auf dem Zielrechner, geht alles. De-installiert man Python27 wieder, geht alles immer noch. Ich schließe daraus, dass Python außer der DLL noch einen Registry-Eintrag benötigt, der bei der Deinstallation nicht gelöscht wird.

Ist das korrekt?

Zweitens stellt sich die Frage, warum das Programm beim Start die DLL làdt, obwohl ich Python erst viel spàter verwende.

Kann ich das vermeiden?

Vielen Dank für Antworten!
 

Lesen sie die antworten

#1 Rene Grothmann
10/04/2013 - 14:05 | Warnen spam
Ok. Das mit dem Laden jeder verlinkten DLL sehe ich ein. Mit LoadLibrary könnt man halt das Programm starten, auch wenn der Nutzer Python nicht installiert hat. Das wàre der Vorteil. Python wàre dann einfach nicht nutzbar.

Das andere Problem hat sich auch geklàrt: Wenn die DLL da ist, aber der Rest von Python nicht installiert wurde, stürzt Py_initialize() ab und reißt das Programm mit sich. Die vorgeschlagenen Methoden (ZIP Datei aus libs und DLLs etc.), mit denen man Python dem Programm mitgeben kann, haben bei mir bisher nicht funktioniert.

Letztendlich möchte man zwei Sachen abfangen: Dass python27.dll nicht da ist, und dass Py_initialize() fehl schàgt.

Geht das?

Ähnliche fragen