Come installare la libreria python win32com


18

Sto cercando di installare il modulo win32com. So che dovrei scaricare l' estensione Python per Windows , ma non funziona.

Dopo aver installato Python per Windows e aver provato import win32com.client, viene visualizzato il seguente messaggio di errore:

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

Cercare su Google di chiedere aiuto su come installare win32api per Python non aiuta neanche; Mi riferisco nuovamente alle estensioni di Python per Windows.


1
Hai installato il giusto binario delle estensioni di Python per Windows per la tua versione di Python? Ad esempio, se si installa Python a 64 bit, quindi si installano le estensioni a 32 bit, i moduli pure-Python (come win32con) verranno importati, ma i moduli con estensione C (come win32api) non lo faranno; se si installa Python 2.6, quindi si installano le estensioni per 2.7, potrebbero importare ma arrestarsi in seguito; ecc.

10
Perché mai questo è stato migrato da Stack Overflow ?!
Jean-François Corbett,

Risposte:


10
  1. Avvia una riga di comando con diritti di amministratore.
  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

Dove è speak.pycostituito da questo testo:

import win32com.client

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

Funziona bene su Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 dicembre 2017, 15:23:10) [MSC v.1900 64 bit (AMD64)] su win32. Vanilla CPython va in giro qui:

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.

4

Controlla sys.path per assicurarti che la directory in cui è installato il modulo sia presente, altrimenti devi aggiungerlo (google PYTHONPATH windows per un po 'di aiuto in questo.)


1
Grazie per il consiglio. Il problema si è rivelato essere diverso: per qualche motivo nel registro c'erano due diverse installazioni di Python, sebbene entrambe puntassero agli stessi file. Reinstallarlo su entrambi ha risolto il problema.

Ho provato a configurare PYTHONPATH nella variabile d'ambiente e ancora non lo vedo funzionare. ottenere lo stesso errore.
Soman Dubey,

Per quelli di voi che ora hanno installato il pacchetto collegato a OP, è necessario riavviare la console Python (ad esempio IDLE) per le modifiche necessarie a PYTHONPATH per popolare in modo tale che importfunzioni.
SeldomNeedy,

2

Ho avuto lo stesso problema solo ieri. Ho installato pypiwin32usando pip.

Provare

>>pip install -U pypiwin32

al prompt dei comandi

Assicurati che il tuo pacchetto Python sia nel PERCORSO di sistema.

Nota che esistono diversi modi per installare i moduli Python e, come hai scoperto, non tutti funzionano. pip installcon -Ulavorato per me con il pypiwin32modulo (che contiene win32com).


1
L' -Uinterruttore sta per --upgradee pypi.org/project/pypiwin32 è un pypi.org/project/pywin32 meglio confezionato (formato .whl ) dagli stessi sviluppatori. Ho letto che python -m pipè preferito solo pipper motivi di percorso.
Cees Timmerman,

Questo ha funzionato per me. Si noti che se si riceve il messaggio di errore TypeError: 'module' object is not callable, provare:python -m pip install -U pypiwin32
datalifenyc il

-2

cerca il file nel tuo computer cercando in tutto il tuo computer "win32api" una volta trovato lo metti qui C: \ Python26 \ Lib \ win32com "supponiamo che tu abbia già installato la libreria win32com e troverai il file che penso in" C : \ Python26 \ Lib \ site-pacchetti \ win32 "Dopo tutto, il file dovrebbe trovarsi in quei due punti del tuo computer affinché il tuo modulo funzioni, ed è tutto finito".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.