tutorial tuple py3exe online indexerror index compile python visual-c++ python-2.7 py2exe

python - tuple - Error: "MSVCP90.dll: no existe tal archivo o directorio" a pesar de que está instalado el paquete redistribuible de Microsoft Visual C++ 2008



py3exe (4)

Estoy tratando de construir un paquete desde la fuente ejecutando python setup.py py2exe

Esta es la sección de código de setup.py, supongo que sería relevante:

if sys.platform == "win32": # For py2exe. import matplotlib sys.path.append("C://Program Files//Microsoft Visual Studio 9.0//VC//redist//x86//Microsoft.VC90.CRT") base_path = "" data_files = [("Microsoft.VC90.CRT", glob.glob(r"C:/Program Files/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT/*.*")),

Error que muestra:

*** finding dlls needed *** error: MSVCP90.dll: No such file or directory

Pero he instalado "Microsoft Visual C ++ 2008 Redistributable Package". Estoy ejecutando python de 32 bits en Windows 8 de 64 bits. Estoy tratando de construir un binario de 32 bits.

Tampoco hay una carpeta como esta: "C: / Archivos de programa / Microsoft Visual Studio 9.0 / VC / redist /". Esto es lo que contiene mi computadora:

EDITAR:

Al buscar msvcp90.dll en mi disco C: / encontré que están instalados en rutas extrañas como esta:


(Nueva respuesta, ya que la otra respuesta describe una solución alternativa)

Puede tomar los archivos del directorio WinSxS y copiarlos al directorio C:/Program Files/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT (normalmente creado por Visual Studio, que no tiene ). Cópialos para obtener la siguiente estructura:

+-Microsoft.VC90.CRT | | | +-Microsoft.VC90.CRT.manifest | +-msvcm90.dll | +-msvcp90.dll | +-msvcr90.dll

Luego, debería poder ejecutar el programa de instalación (aún excluyendo msvcp90.dll , como en la otra respuesta), y debería encontrar los archivos bajo Microsoft.VC90.CRT y copiarlos como archivos de datos en su paquete.

Vea el tutorial de py2exe para más información.


Creo que tiene algo que ver con los espacios en el directorio. Debes intentar usar .rstrip() . Por ejemplo, pon esto:

directory=''C:/Program Files/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT'' directory=directory.rstrip()

Luego puede usar el directorio de variables como si hubiera usado la ruta real.

Esto debería hacer que Python sea capaz de reconocer el directorio donde no podría descifrarlo antes.


Solía ​​tener una gran cantidad de problemas con la complicación en Windows, como el problema al que te enfrentas y la instalación de paquetes como Cython con pip install cython .

La solución que mejor me funcionó después de dos semanas de dolor fue descargar y ejecutar el binario no oficial MinGW GCC para Windows que se proporciona here . Es posible que desee intentar darle una oportunidad y ver si ayuda.

Si lo hace, es posible que desee desinstalar MinGW si ya lo tiene. No sé si eso es estrictamente necesario, pero siempre lo hice por si acaso. Lo tenía instalado junto a Cygwin sin ningún problema.


Yo recomendaría ignorar completamente la dependencia. Agregue MSVCP90.dll a la lista de dll_excludes dada como una opción para py2exe . Los usuarios deberán instalar Microsoft Visual C ++ 2008 redistribuible. Un ejemplo:

setup( options = { "py2exe":{ ... "dll_excludes": ["MSVCP90.dll", "HID.DLL", "w9xpopen.exe"], ... } }, console = [{''script'': ''program.py''}] )