Pregunta

Cuando se utiliza py2exe para distribuir aplicaciones de Python con wxPython, normalmente se necesitan algunas DLL de MSVC para que el archivo .exe funcione en máquinas recién instaladas. En particular, las dos DLL más comunes son msvcp71.dll y msvcr71.dll

El primero se puede incluir en el .exe usando esta sugerencia . Sin embargo, este último se coloca en el directorio dist por py2exe y no en el ejecutable, incluso si específicamente solicito incluirlo.

¿Alguna idea de cómo hacer que py2exe incluya ambos dentro del archivo .exe?

¿Fue útil?

Solución

¿No podría fallar al lanzar, entonces? Desea msvcr71.dll en el mismo directorio que exe, para que el cargador de la biblioteca pueda encontrarlo y vincularlo al mapa de memoria de la aplicación.

Es necesario para la operación básica, por lo que no puedes dejar que py2exe lo descomprima con el resto de los DLL.

Otros consejos

py2exe no puede hacer esto. Puede envolver py2exe (hay un ejemplo en la wiki que muestra cómo hacerlo con NSIS) ; podría crear su propio contenedor si no fuera posible utilizar NSIS o InnoSetup.

Alternativamente, si está seguro de que sus usuarios tendrán instalada una copia compatible de msvcr71.dll (usuarios de IIRC Vista o XP SP2), entonces podría escapar sin incluirla. Quizás sea más útil, si usa Python 2.3 (o más antiguo), entonces Python enlaza contra msvcr.dll en lugar de msvcr71.dll, y cualquier usuario de Windows tendrá eso instalado, por lo que no puede preocuparse por eso.

Sí, py2exe puede hacer esto. Vea este enlace. Y si está usando python2.7, reemplace " msvcr71 " a " msvcp90 " ;.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top