Frage

Ich habe ein Problem: Ich py2exe für mein Programm verwendet, und es funktioniert auf meinem Computer. Ich verpackt es mit Inno Setup (immer noch auf meinem Computer gearbeitet hat), aber wenn ich es auf einen anderen Computer gesendet, bekam ich die folgende Fehlermeldung, wenn sie versuchen, die Anwendung auszuführen: „Createprocess fehlgeschlagen; Code 14001.“ Die App wird nicht ausgeführt. (Anmerkung: Ich bin mit wxPython und das Multiprocessing-Modul in meinem Programm.) Ich googeln für sie ein wenig und stellte fest, dass die der Benutzer sollte einige MS verteilbare etwas installieren, aber ich will nicht das Leben für meine Nutzer machen kompliziert. Gibt es eine Lösung?

Versionen:

Python 2.6.2c1, py2exe 0.6.9, Windows XP Pro

War es hilfreich?

Lösung

Sie müssen schließen msvcr90.dll, Microsoft.VC90.CRT.manifest und python.exe.manifest (umbenannt in [yourappname] exe.manifest) in Ihrem Installationsverzeichnis. Diese Dateien werden im Python26 Verzeichnis auf Ihrem System sein werden, wenn Sie installiert Python mit der „Just for me“ Option.

Anweisungen, dies zu tun finden Sie hier .

Vergessen Sie nicht, rufen Sie multiprocessing.freeze_support () in Ihre Hauptfunktion auch, oder Sie werden Probleme haben, wenn Sie einen neuen Prozess zu starten.

Während andere einschließlich der MSVC Laufzeit in Ihrem Installationspaket besprochen haben, funktioniert die obige Lösung, wenn Sie nur eine einzige ZIP-Datei enthält alle Ihre Dateien verteilen möchten. Es vermeidet ein separates Installationspaket erstellen zu müssen, wenn Sie nicht, dass die zusätzliche Komplikation wollen.

Andere Tipps

Es solle möglich sein, dass MS verteilbare Dingen als Teil Ihrer InnoSetup Setup exe zu installieren.

Wenn Sie py2exe laufen, genau hinsehen, um die letzten Nachrichten, wenn es fertig ist. Es gibt Ihnen eine Liste von DLLs, die es sagt, benötigt wird, durch das Programm, aber das py2exe bündelt nicht automatisch.

Viele in der Liste sind zuverlässig auf jedem Windows installieren, aber es wird ein paar, die Sie manuell in die Inno Setup Installation bündeln soll. Einige sind nur erforderlich, wenn Sie auf bereitstellen möchten ältere Windows installiert z.B. Win 2000 oder früher.

Sie können die Runtime-DLLs in Frage Schiff mit Ihrer Anwendung als „private Assembly“. Dies bedeutet einfach, eine Kopie eines speziell genannten Verzeichnis setzen die Runtime-DLLs und ihre Manifeste neben ausführbare Datei enthält.

Siehe meine Antwort auf diesen Beitrag .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top