Closed GoogleCodeExporter closed 8 years ago
Adicionalmente, aparentemente hay un tema posiblemente relacionado a algunas
DLL de win7 que deben ser omitidas:
"API-MS-Win-Core-LocalRegistry-L1-1-0.dll",
"API-MS-Win-Core-ProcessThreads-L1-1-0.dll",
"API-MS-Win-Security-Base-L1-1-0.dll"
http://code.google.com/p/pyafipws/source/browse/setup_wsaa.py#27
Original comment by reingart@gmail.com
on 18 May 2011 at 10:13
El problema aparentemente era la versión de los redistribuibles de MSVC9.
Con el "reciente" Python 2.7.9 y "Microsoft.VC90.CRT 9.0.21022.8" (ver
manifest) se resuelven este tipo de problemas.
Ademas, con el reciente "Microsoft Visual C++ Compiler for Python 2.7" se
pueden compilar las extensiones más facilmente para evitar problemas similares:
http://www.microsoft.com/en-us/download/details.aspx?id=44266
No instalar el SP1, el correcto (para python 2.7) es "Microsoft Visual C++ 2008
Redistributable Package (x86)"
http://www.microsoft.com/en-us/download/details.aspx?id=29
Ahora se puede
* embeber el runtime (vcredist_x86.exe) y ejecutarlo automáticamente de modo silencioso en el instalador, con la ventaja que el paquete final instalado ocupa menor espacio (no el instalador, porque el vcredis pesa ~2MB) y en teoría es visible por el usuario y/o puede recibir actualizaciones automáticas de windows
* embeber las DLL (msvcr90.dll, msvcp90.dll, msvcm90.dll) y el manifest side-by-side en el mismo directorio (SXS), ocupa menos de ~1MB
La última forma es más portable porque permite usar las herramientas sin
necesidad de correr el instalador.
Igualmente el setup.py y nsis.py soporta ambas (detecta automaticamente si el
manifest esta incluido, y no embebe el instalador)
CONSEJO: armar una VM con Windows 8.1 y no tener instalado otro compilador
MSVC++ ni runtime, ya que sino py2exe parece confundirse y los ejecutables
(.exe/.dll) van a tener otro manifest (o a veces ninguno), lo que luego causa
error al ejecutarlo.
Para extraer el manifest embebido en los .exe/.dll y poder compararlo, ejecutar:
C:\PYTHON27>"c:\Program Files\Windows Kits\8.1\bin\x86\mt.exe"
-inputresource:python.exe -out:extraced.manifest
MT.exe (Manifest Tool) está incluido en los SDK de Windows, para 8.1 ver:
https://msdn.microsoft.com/es-es/windows/desktop/bg162891.aspx
NOTA: los DLL y el manifest se pueden tomar de Mercurial, pero el cliente
Dropbox para Windows también los incluyen.
Original comment by reingart@gmail.com
on 23 Jan 2015 at 9:05
[deleted comment]
[deleted comment]
AGREGO: aparte del CRT, haría falta también los redistribuibles del MFC para
las aplicaciones visuales (PyRece, PyFactura). Están incluidos con pywin32 y
el setup.py los copia automáticamente en esos casos.
Para los cambios en el código fuente, ver: r7579853d3c3f (vcredist.exe),
rb05d8646a7a4 (SxS), r44fd999e529f
Original comment by reingart@gmail.com
on 23 Jan 2015 at 9:44
Issue 90 has been merged into this issue.
Original comment by reingart@gmail.com
on 20 Apr 2015 at 4:04
Original issue reported on code.google.com by
reingart@gmail.com
on 18 May 2011 at 9:49Attachments: