Cómo instalar la biblioteca de python win32com

18

Estoy tratando de instalar el módulo win32com. Sé que debería descargar la extensión Python para Windows , pero no funciona.

Después de instalar Python para Windows e intentarlo import win32com.client, aparece el siguiente mensaje de error:

>>> import win32com.client

    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        import win32com.client
      File "C:\Python27\lib\site-packages\win32com\__init__.py", line 5, in <module>
        import win32api, sys, os

ImportError: No module named win32api

Intentar buscar ayuda en google sobre cómo instalar win32api para Python tampoco ayuda; Me acaban de referir a las extensiones de Python para Windows nuevamente.

NiklasR
fuente
1
¿Instaló el binario correcto de Python para las extensiones de Windows para su versión de Python? Por ejemplo, si instala Python de 64 bits, luego instala las extensiones de 32 bits, los módulos de Python puro (como win32con) se importarán, pero los módulos de extensión C (como win32api) no; si instala Python 2.6, luego instala las extensiones para 2.7, pueden importarse pero bloquearse más tarde; etc.
10
¿Por qué demonios se migró esto de Stack Overflow?
Jean-François Corbett

Respuestas:

10
  1. Comience una línea de comando con derechos de administrador.
  2. python -m pip install pywin32
  3. C:\Program Files\Stackless36\Scripts>python pywin32_postinstall.py -install
  4. python C:\code\Python\speech\speak.py

Donde speak.pyconsta de este texto:

import win32com.client

speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("It works, bitches.")

Funciona bien en Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 de diciembre de 2017, 15:23:10) [MSC v.1900 64 bit (AMD64)] en win32. Vanilla CPython pasa el rato aquí:

C:\Users\C\AppData\Local\Programs\Python\Python36-32>python.exe
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32com.client
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'win32com'
>>> exit()

C:\Users\C\AppData\Local\Programs\Python\Python36-32>python.exe -m pip install pywin32
Collecting pywin32
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/d4/2d/b927e61c4a2b0aaaab72c8cb97cf748c319c399d804293164b0c43380d5f/pywin32-223-cp36-cp36m-win32.whl (8.3MB)
    100% |████████████████████████████████| 8.3MB 50kB/s
Installing collected packages: pywin32
Successfully installed pywin32-223
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Cees Timmerman
fuente
4

Verifique sys.path para asegurarse de que el directorio donde está instalado el módulo esté allí; de lo contrario, debe agregarlo (google PYTHONPATH windows para obtener ayuda con eso).


fuente
1
Gracias por el consejo. El problema resultó ser algo diferente: por alguna razón, había dos instalaciones diferentes de Python en el registro, aunque ambas apuntaban a los mismos archivos. Reinstalarlo en ambos resolvió el problema.
Intenté configurar PYTHONPATH en una variable de entorno y todavía no veo que esto funcione. obteniendo el mismo error.
Soman Dubey
Para aquellos de ustedes que ahora instalaron el paquete que OP conectó, deberán reiniciar su consola Python (por ejemplo, IDLE) para que se realicen los cambios necesarios en PYTHONPATH para que importfuncione.
SeldomNeedy
2

Tuve el mismo problema ayer. Lo instalé pypiwin32usando pip.

Tratar

>>pip install -U pypiwin32

en el símbolo del sistema

Asegúrese de que su paquete Python esté en la RUTA del sistema.

Tenga en cuenta que hay algunas formas diferentes de instalar módulos de Python y, como ha descubierto, no todas funcionan. pip installcon -Utrabajaban para mí con el pypiwin32módulo (que contiene win32com).

David Willis
fuente
1
El -Uconmutador significa --upgradey pypi.org/project/pypiwin32 es un mejor paquete (formato .whl ) pypi.org/project/pywin32 por los mismos desarrolladores. Leí que python -m pipse prefiere solo pippor razones de ruta.
Cees Timmerman
Esto funcionó para mí. Tenga en cuenta que si recibe el mensaje de error TypeError: 'module' object is not callable, intente:python -m pip install -U pypiwin32
datalifenyc
-2

busque el archivo en su computadora buscando en toda su computadora "win32api" una vez que lo encuentre, póngalo aquí C: \ Python26 \ Lib \ win32com "esto supone que ya instaló la biblioteca win32com y encontrará el archivo que creo en" C : \ Python26 \ Lib \ site-packages \ win32 "Después de todo, el archivo debe ubicarse en esos dos lugares en su computadora para que su módulo funcione, eso es todo".

usuario347582
fuente