Question

Je dois avouer que je suis très nouveau pour Python et je ne sais pas vraiment ce que je fais encore. Récemment, je créé une très petite application Windows en utilisant Python 2.6.2 et wxPython 2.8. Et cela fonctionne très bien; Je suis très satisfait de la façon dont il fonctionne normalement. Par normalement je veux dire quand j'invoque directement par l'interpréteur Python, comme ceci:

> python myapp.py

Cependant, je voulais aller plus loin et de compiler ce fait dans un fichier exécutable autonome. Donc, je suivais ces instructions du wiki wxPython qui utilisent py2exe. Au début, il m'a donné des erreurs dans la ligne de commande, en disant msvcr90.dll était absent. Ensuite, je copiais msvcr90.dll à mon dossier Python \ DLL. Ce regarda d'abord comme il fixe, puisqu'il a réussi à ce qu'il fallait faire. Il a fini avec un avertissement rapide qu'il y avait des fichiers DLL du programme dépend et je peut ou peut ne pas avoir besoin de les distribuer.

Je naviguais dans le dossier dist que py2exe avait créé et essayé de lancer mon exécutable. Mais en essayant de l'ouvrir seulement sauté vers le haut d'une boîte de dialogue d'erreur qui dit:

This application failed to start because MSVCR90.dll was not found.
Re-installing the application may fix this problem.

Alors je suis allé de l'avant et recopiés msvcr90.dll dans ce dossier dist. Mais cela ne fait pas le tour. Ensuite, je l'ai copié dans le répertoire WINDOWS \ system32. Cela ne l'a pas non plus. Que dois-je faire pour obtenir cette chose à travailler?

Était-ce utile?

La solution

Vous ne pouvez pas simplement copier msvcr * .dll - ils doivent être mis en place en utilisant les règles pour les assemblages côte à côte. Vous pouvez le faire en installant le package redistribuable comme Sam indique, ou vous pouvez les mettre à côté de vos executables aussi longtemps que vous respectez les règles.

Voir la section "Déploiement Visual C ++ DLLs bibliothèque que les assemblées privées" ici: Comment déployer en utilisant XCopy pour plus de détails, mais essentiellement votre application ressemble à ceci:

c:\My App\MyApp.exe
c:\My App\Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest
c:\My App\Microsoft.VC90.CRT\msvcr90.dll

L'un des avantages est que les utilisateurs non-administrateurs peuvent utiliser votre application (je crois que vous devez être un administrateur pour installer le moteur d'exécution via le programme d'installation redistribuable). Et il n'y a aucun besoin d'installation -. Il vous suffit de copier les fichiers sur un PC et tout cela fonctionne

Autres conseils

Je crois que l'installation Microsoft C ++ package redistribuable installera la DLL dont vous avez besoin correctement.

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