Comment installer la bibliothèque python win32com

18

J'essaie d'installer le module win32com. Je sais que je devrais télécharger l' extension Python pour Windows , mais cela ne fonctionne pas.

Après avoir installé Python pour Windows et essayé import win32com.client, j'obtiens le message d'erreur suivant:

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

Essayer de google pour obtenir de l'aide sur la façon d'installer win32api pour Python n'aide pas non plus; Je me réfère à nouveau aux extensions Python pour Windows.

NiklasR
la source
1
Avez-vous installé le bon binaire des extensions Python pour Windows pour votre version de Python? Par exemple, si vous installez Python 64 bits, puis installez les extensions 32 bits, les modules Python purs (comme win32con) seront importés, mais pas les modules d'extension C (comme win32api); si vous installez Python 2.6, puis installez les extensions pour 2.7, elles peuvent importer mais planter plus tard; etc.
10
Pourquoi diable a-t-il migré de Stack Overflow?!
Jean-François Corbett

Réponses:

10
  1. Démarrez une ligne de commande avec des droits d'administrateur.
  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

Où se speak.pycompose de ce texte:

import win32com.client

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

Fonctionne bien sur Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 décembre 2017, 15:23:10) [MSC v.1900 64 bits (AMD64)] sur win32. Vanilla CPython traîne ici:

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
la source
4

Vérifiez sys.path pour vous assurer que le répertoire où le module est installé est là, sinon vous devez l'ajouter (fenêtres Google PYTHONPATH pour obtenir de l'aide à ce sujet.)


la source
1
Merci pour le conseil. Le problème s'est avéré être quelque chose de différent: pour une raison quelconque, il y avait deux installations Python différentes dans le registre, bien que les deux pointent vers les mêmes fichiers. La réinstallation sur les deux a résolu le problème.
J'ai essayé d'installer PYTHONPATH dans la variable d'environnement et je ne vois toujours pas cela fonctionner. obtenir la même erreur.
Soman Dubey
Pour ceux d'entre vous qui ont maintenant installé le package lié par OP, vous devrez redémarrer votre console Python (par exemple IDLE) pour que les modifications nécessaires de PYTHONPATH soient effectuées afin que votre importtravail fonctionne.
SeldomNeedy
2

J'ai eu le même problème qu'hier. J'ai installé en pypiwin32utilisant pip.

Essayer

>>pip install -U pypiwin32

à l'invite de commande

Assurez-vous que votre package Python est dans le PATH du système.

Notez qu'il existe plusieurs façons d'installer des modules Python et, comme vous l'avez découvert, ils ne fonctionnent pas tous. pip installavec -Utravaillé pour moi avec le pypiwin32module (qui contient win32com).

David Willis
la source
1
Le -Ucommutateur représente --upgradeet pypi.org/project/pypiwin32 est un pypi.org/project/pywin32 mieux emballé (format .whl ) par les mêmes développeurs. J'ai lu que python -m pipc'est préférable à juste pippour des raisons de chemin.
Cees Timmerman
Cela a fonctionné pour moi. Notez que si vous recevez le message d'erreur TypeError: 'module' object is not callable, essayez:python -m pip install -U pypiwin32
datalifenyc
-2

recherchez le fichier dans votre ordinateur en recherchant dans tout votre ordinateur "win32api" une fois que vous l'avez trouvé, mettez-le ici C: \ Python26 \ Lib \ win32com "ceci vous a déjà installé la bibliothèque win32com et vous trouverez le fichier je pense dans" C : \ Python26 \ Lib \ site-packages \ win32 "Après tout, le fichier doit être situé à ces deux endroits de votre ordinateur pour que votre module fonctionne, c'est tout dans fini".

user347582
la source