Corrija la syntax de mt.exe para resolver los problemas de importación de pyodbc

Estoy implementando una aplicación Python en Windows por primera vez (Apache & mod_wsgi / Flask / Sqlalchemy).

Me gustaría usar pyodbc para hacer que Sqlalchemy hable con mssql.

Pude instalar una comstackción binaria de pyodbc sin problemas, y funciona cuando lo uso desde la línea de comandos. Sin embargo, mod_wsgi está registrando errores de importación cuando llega a import pyodbc

Este hilo en el rastreador de problemas de pyodbc describe exactamente mi problema y parece implicar los manifiestos de Windows. Sin embargo, no puedo averiguar cómo usar mt.exe para resolverlo.

En PowerShell:

 C:\my\site-packages> C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\mt.exe -inputresource:c:\Windows\SysWOW64\python27.dll;#2 -manifest -outputresource:pyodbc.pyd#2' mt.exe : command line error c10100a9: Some operation on the input manifests must be specified (even if it is just to pipe the input to the output). Use the /? option for help on usage and samples.` 

En cmd:

 C:\my\site-packages>"C:\Program Files\Microsoft SDKs"\Windows\v7.1\Bin\mt.exe -inputresource:C:\Windows\SysWOW64\python27.dll#2 -outputresource:pyodbc.pyd#2 mt.exe : general error c101008c: Failed to read the manifest from the resource of file "C:\Windows\SysWOW64\python27.dll#2". The system cannot find the file specified. 

¡¿Qué estoy haciendo mal?!

Soy el autor del hilo en el rastreador de problemas de pyodbc.

A menos que me esté perdiendo algo, parece que el archivo ” C: \ Windows \ SysWOW64 \ python27.dll ” no existe. Tal vez usted tiene una versión distinta de 2.7?

De lo contrario, asegúrese de haber instalado los paquetes oficiales de windows para python y verifique que la importación de pyodbc tenga éxito con esa versión. Si lo hace, debería poder sustituir la ruta a su python.dll local (por ejemplo, python27.dll) desde la raíz de instalación de python o en cualquier otro lugar.

Bueno, esto es vergonzoso: parece que me faltan puntos y comas. Sé que ejecuté el comando correctamente al menos unas cuantas veces, así que enumeraré las otras cosas que cambié antes de notar el error en la syntax:

  • Hecho triplemente seguro de que todo era de 32 bits
  • Descargué Visual Studio C ++ 2008 Express (antes ejecutaba VC ++ 2008 redistribuible antes, y esto me dio una versión diferente de mt.exe)
  • Desinstaló cualquier cosa con “2010” y “C ++” en su nombre
  • Ejecutó el comando en cmd; Por alguna razón, no funciona en absoluto en PowerShell.

Gracias de nuevo a Alfred por su publicación épicamente detallada y útil en la lista de correo de pyodbc.