Question

J'ai un problème: j'ai utilisé py2exe pour mon programme et cela a fonctionné sur mon ordinateur. Je l'ai emballé avec Inno Setup (qui fonctionnait toujours sur mon ordinateur), mais lorsque je l'ai envoyé à un autre ordinateur, l'erreur suivante s'est produite lors de la tentative d'exécution de l'application: & "CreateProcess a échoué; code 14001. " L'application ne fonctionnera pas. (Remarque: j'utilise wxPython et le module de multitraitement dans mon programme.) J'ai googlé un peu et trouvé que l'utilisateur devait installer quelque chose de redistribuable MS, mais je ne veux pas compliquer la vie de mes utilisateurs. Y a-t-il une solution?

Versions:

Python 2.6.2c1, py2exe 0.6.9, Windows XP Pro

Était-ce utile?

La solution

Vous devez inclure msvcr90.dll, Microsoft.VC90.CRT.manifest et python.exe.manifest (renommé [yourappname] .exe.manifest) dans votre répertoire d'installation. Ces fichiers seront dans le répertoire Python26 de votre système si vous avez installé Python avec & "Juste pour moi &"; option.

Les instructions pour le faire sont disponibles ici .

N'oubliez pas d'appeler multiprocessing.freeze_support () dans votre fonction principale également, ou vous aurez des problèmes lorsque vous démarrez un nouveau processus.

Alors que d’autres ont déjà expliqué l’inclusion du runtime MSVC dans votre package d’installation, la solution ci-dessus fonctionne lorsque vous souhaitez uniquement distribuer un fichier .zip contenant tous vos fichiers. Cela évite de créer un package d'installation séparé lorsque vous ne voulez pas cette complication supplémentaire.

Autres conseils

Vous devriez pouvoir installer ce logiciel redistribuable dans le cadre de votre programme d'installation InnoSetup.

Lorsque vous exécutez py2exe, examinez attentivement les derniers messages à la fin. Il vous donne une liste des DLL dont il dit qu’elles sont nécessaires au programme, mais que py2exe ne regroupe pas automatiquement.

De nombreux éléments de la liste sont disponibles de manière fiable pour toute installation Windows, mais vous devrez en intégrer quelques-uns manuellement dans votre installation Inno Setup. Certains ne sont nécessaires que si vous souhaitez déployer sur des installations Windows plus anciennes, par exemple. Win 2000 ou plus tôt.

Vous pouvez envoyer les DLL d'exécution en question avec votre application en tant que & "; assemblage privé &"; Cela signifie simplement mettre une copie d'un répertoire spécialement nommé contenant les DLL d'exécution et leurs manifestes à côté de votre exécutable.

Voir ma réponse à cet article .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top