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

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 intentando crear binarios de 32 bits.

Tampoco hay una carpeta como esta: “C: \ Archivos de progtwig \ Microsoft Visual Studio 9.0 \ VC \ redist \”. Esto es lo que contiene mi computadora:

introduzca la descripción de la imagen aquí

EDITAR:

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

introduzca la descripción de la imagen aquí

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'}] ) 

(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 progtwig de instalación (aún excluyendo msvcp90.dll , como en la otra respuesta), y debería encontrar los archivos en Microsoft.VC90.CRT con éxito y copiarlos como archivos de datos en su paquete.

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

Solía ​​tener una gran cantidad de problemas con la complicación en Windows, como el problema al que te enfrentas, así como 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 de MinGW GCC para Windows que se proporciona aquí . 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 tuve instalado junto a Cygwin sin ningún problema.

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.