py2exe incluant les DLL MSVC dans le fichier .exe
Question
Lorsque vous utilisez py2exe pour distribuer des applications Python avec wxPython, certaines DLL MSVC sont généralement nécessaires pour que le fichier .exe fonctionne sur des ordinateurs fraîchement installés. Msvcp71.dll et msvcr71.dll sont notamment les deux DLL les plus courantes
Le premier peut être inclus dans le fichier .exe à l'aide de cette astuce . Cependant, ce dernier est simplement placé dans le répertoire dist
par py2exe et non dans l'exécutable, même si je demande spécifiquement à l'inclure.
Avez-vous une idée de la manière dont py2exe doit être inclus dans le fichier .exe?
La solution
Ne pourrait-il pas se lancer, alors? Vous voulez que msvcr71.dll
se trouve dans le même répertoire que le fichier exe, afin que le chargeur de bibliothèque puisse le trouver et le lier dans la mappe de mémoire de l'application.
Il est nécessaire pour les opérations de base. Vous ne pouvez donc pas laisser py2exe
le décompresser avec le reste des DLL.
Autres conseils
py2exe ne peut pas faire cela. Vous pouvez encapsuler py2exe (un exemple sur le wiki montre comment procéder avec NSIS). ; vous pouvez créer votre propre wrapper si NSIS ou InnoSetup n'était pas une option.
Sinon, si vous êtes certain que vos utilisateurs disposeront d'une copie compatible de msvcr71.dll (utilisateurs IIRC Vista ou XP SP2), vous pourrez vous en sortir sans l'inclure. Plus utilement, si vous utilisez Python 2.3 (ou une version plus ancienne), alors Python crée un lien vers msvcr.dll plutôt que msvcr71.dll, et tout utilisateur Windows l’aura déjà installé. Ne vous inquiétez donc pas.
Oui, py2exe peut le faire. Afficher ce lien. Si vous utilisez python2.7, remplacez & msgcr71 " pour "msvcp90".