win32print win32api tutorial pythonwin pypiwin32 python winapi installation pywin32

python - win32api - Error al instalar y ejecutar pywin32 2.7



win32api python documentation (9)

Estoy llegando a un par de errores después de la instalación:

pywin32-217.win32-py2.7

Recientemente he actualizado ArcGIS a 10.1 y usa Python 2.7 (a diferencia de 2.6 que vino con ArcGIS 10.0)

Cuando ejecuto el instalador en un Windows 7 de 64 bits, se instala, pero muestra el siguiente mensaje:

cierre fallido en el archivo destructor de objetos:

Falta sys.excepthook

sys.stderr perdido

Tenía un sencillo script de Python para imprimir en una impresora desde una carpeta que contenía archivos .pdf que funcionaban antes de mi actualización

import arcpy, glob, win32api, os pdfLoc = arcpy.GetParameterAsText(0) try: copies = int(arcpy.GetParameter(1)) except: copies = 1 for pdfname in glob.glob(os.path.join(pdfLoc, "*.pdf")): fullpath = os.path.join(pdfLoc, pdfname) for copy in range(copies): win32api.ShellExecute(0, "print", pdfname, None, ".", 0) del fullpath del pdfname del pdfLoc

Ahora cuando ejecuto el script, aparece el siguiente error:

Traceback (última llamada más reciente): Archivo "Z: / ESRI / Python / Solstice_Tools_Scripts / Printer_Tools / Batch_Print_From_PDF_Only / BatchprintFromPDFOnly_Test.py", línea 34, en Win32api. 0) error: (31, ''ShellExecute'', ''Un dispositivo conectado al sistema no está funcionando.'')

Error al ejecutar (BatchPrintFromPDFOnly2).

He estado buscando en Google y he intentado algunas soluciones, como ejecutar el ejecutable en modo de resolución de problemas, pero el error persiste. ¿Alguien puede sugerir qué puede causar esto?

Como nota al margen, actualicé 4 computadoras en mi compañía a la nueva versión de python y ArcGIS, y solo una de ellas está generando este error. El resto funciona bien.

Gracias Mike


Ejecutar desde un PowerShell command as admin funcionó para mí en Windows 10, donde un Command line prompt (as admin) falló.


Lo resolví usando esto:

pip install pypiwin32


Me encontré con el mismo problema que el autor. Utilicé el guión de Tim Golden Python para imprimir un archivo de texto. Después de ejecutar, hay errores como los siguientes:

pywintypes.error: (31, ''ShellExecute'', ''Un dispositivo conectado al sistema no funciona.'')

Mi sistema es Windows 7, 64 bit. El python es python2.7 64bit.

Creo que el error no tiene nada que ver con la instalación de pywin32 o la configuración del sistema de Windows. Supongo que la razón es la configuración predeterminada del software de apertura para el archivo .txt. Porque después de cambiar el software de apertura predeterminado de Nodepad ++ al bloc de notas, puedo imprimir el archivo en mi impresora Hp.


Me enfrenté al mismo problema cuando instalé pywin32-219.win-amd64-py2.7.exe ejecutando el archivo de instalación como administrador.

Una vez que lo instalé simplemente ejecutando el archivo (haciendo doble clic en él), no volví a enfrentar este problema.

Estoy en Windows 7 64 bit SP1 con Python 2.7.9 (64 bit)

Sin embargo, noté una cosa extraña: si simplemente hacía doble clic en el archivo exe del instalador, me tomó un poco más de 20 segundos para que apareciera el mensaje si me gustaría ejecutar el archivo exe o no, mientras que en caso de ejecutarlo como administrador, sucedió en ese momento (no tuve que esperar tanto). Estoy usando un SSD de 120 GB, por lo que no puedo cuestionar la lentitud del disco duro en este caso.

De todos modos, aquí está la salida después de la instalación exitosa de pywin32 en mi caso:

Copied pythoncom27.dll to C:/Windows/system32/pythoncom27.dll Copied pythoncomloader27.dll to C:/Windows/system32/pythoncomloader27.dll Copied pywintypes27.dll to C:/Windows/system32/pywintypes27.dll Registered: Python.Interpreter Registered: Python.Dictionary Registered: Python -> Software/Python/PythonCore/2.7/Help[None]=None -> Software/Python/PythonCore/2.7/Help/Pythonwin Reference[None]=''C://Python27//Lib//site-packages//PyWin32.chm'' Pythonwin has been registered in context menu Creating directory C:/Python27/Lib/site-packages/win32com/gen_py Shortcut for Pythonwin created Shortcut to documentation created The pywin32 extensions were successfully installed.


Ninguna de las soluciones me ayudó (Sentado en Windows 10).

Pero finalmente lo arreglé cuando ejecuté c: / python27 / scripts / pywin32_postinstall.py -install

Después de la instalación, puede intentar ejecutar el instalador nuevamente solo para estar seguro, funcionó para mí.


No debe instalar como administrador, vea este informe de error :

Esto quizás se deba a que está ejecutando Windows en la cuenta de "Administrador" y todo lo que normalmente ejecuta es igual a "Ejecutar como Administrador"

Y, paradójicamente, la ejecución de la instalación de pywin32 en Windows 7 como Administrador provoca este error.

Así que una solución es crear otra cuenta de administrador

usuario de red Admin / add
usuario de red Admin
Administradores de red local admin / agregar

y luego ejecute la instalación de pywin32 con

runas / user: Admin pywin32-217.win32-py2.7.exe


Pasos para instalar pywin32 -

  1. usuario de red Admin / add
  2. usuario de red Admin
  3. Administradores de red local admin / agregar
  4. runas / user: Admin pywin32-217.win32-py2.7.exe

Tuve el mismo problema, pero lo resolví un poco diferente. En lugar de crear otra cuenta de administrador, pude ejecutar pywin32-217.win32-py2.7.exe correctamente desde un indicador de comandos que comencé con Ejecutar como administrador .


Una solución alternativa es lo que Mark Hammond sugiere en la lista de correo pywin32 :

Esto parece suceder si el Control de acceso de usuario (UAC) está deshabilitado. ¿Está deshabilitado para usted?

De cualquier manera, intente ejecutar "python scripts / pywin32_postinstall.py -install" desde la raíz del directorio de instalación y las cosas deberían terminar de registrarse, eso debería solucionar el siguiente error que vea.

Esto funcionó bien para mi.