Como instalar a biblioteca python win32com

18

Estou tentando instalar o módulo win32com. Sei que devo baixar a extensão Python para Windows , mas ela não funciona.

Depois de instalar o Python para Windows e tentar import win32com.client, recebo a seguinte mensagem de erro:

>>> 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

Tentar procurar no google por ajuda sobre como instalar o win32api para Python também não ajuda; Acabei de me referir às extensões Python para Windows novamente.

NiklasR
fonte
1
Você instalou o binário correto de extensões do Python para Windows para sua versão do Python? Por exemplo, se você instalar o Python de 64 bits e instalar as extensões de 32 bits, os módulos puro do Python (como win32con) serão importados, mas os módulos da extensão C (como win32api) não serão; se você instalar o Python 2.6 e instalar as extensões para 2.7, elas poderão ser importadas, mas travarão mais tarde; etc
10
Por que na Terra isso foi migrado do Stack Overflow ?!
Jean-François Corbett

Respostas:

10
  1. Inicie uma linha de comando com direitos 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

Onde speak.pyconsiste neste texto:

import win32com.client

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

Funcionando bem no Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 de dezembro de 2017, 15:23:10) [MSC v.1900 de 64 bits (AMD64)] no win32. O Vanilla CPython está aqui:

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
fonte
4

Verifique o sys.path para garantir que o diretório em que o módulo está instalado esteja lá, caso contrário você precisará adicioná-lo (janelas do Google PYTHONPATH para obter ajuda com isso).


fonte
1
Obrigado pelo conselho. O problema acabou sendo algo diferente: por algum motivo, havia duas instalações Python diferentes no registro, embora ambas apontassem para os mesmos arquivos. Reinstalá-lo em ambos resolveu o problema.
Tentei configurar o PYTHONPATH na variável de ambiente e ainda não vejo isso funcionando. recebendo o mesmo erro.
Soman Dubey
Para aqueles que agora instalaram o pacote vinculado pelo OP, será necessário reiniciar o console do Python (por exemplo, IDLE) para obter as alterações necessárias no PYTHONPATH para preencher, de forma que o seu importfuncione.
SeldomNeedy
2

Ontem tive o mesmo problema. Eu instalei pypiwin32usando pip.

Experimentar

>>pip install -U pypiwin32

no prompt de comando

Verifique se o seu pacote Python está no PATH do sistema.

Observe que existem algumas maneiras diferentes de instalar os módulos Python e, como você descobriu, nem todas elas funcionam. pip installcom -Utrabalhou para mim com o pypiwin32módulo (que contém win32com).

David Willis
fonte
1
O -Uswitch representa --upgradee pypi.org/project/pypiwin32 é um pacote melhor (formato .whl ) pypi.org/project/pywin32 com os mesmos desenvolvedores. Eu li que python -m pipé preferível apenas pippor razões de caminho.
Cees Timmerman
Isso funcionou para mim. Observe que, se você estiver recebendo a mensagem de erro TypeError: 'module' object is not callable, tente:python -m pip install -U pypiwin32
datalifenyc
-2

procure o arquivo no seu computador pesquisando em todo o seu computador "win32api" depois de encontrá-lo aqui C: \ Python26 \ Lib \ win32com "isso supõe que você já instala a biblioteca win32com e encontrará o arquivo que penso em" C : \ Python26 \ Lib \ site-packages \ win32 "Afinal, o arquivo deve estar localizado nesses dois locais do seu computador para que seu módulo funcione, é isso".

user347582
fonte