Jak zainstalować bibliotekę python win32com

18

Próbuję zainstalować moduł win32com. Wiem, że powinienem pobrać rozszerzenie Python dla Windows , ale to nie działa.

Po zainstalowaniu Python dla Windows i próbie import win32com.clientpojawia się następujący komunikat o błędzie:

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

Próba znalezienia w Google pomocy dotyczącej instalacji win32api dla Pythona również nie pomaga; Ponownie odnoszę się do rozszerzeń Python dla Windows.

NiklasR
źródło
1
Czy zainstalowałeś odpowiednie binarne rozszerzenia Python dla Windows dla swojej wersji Python? Na przykład, jeśli zainstalujesz 64-bitowy Python, a następnie zainstalujesz 32-bitowe rozszerzenia, moduły czysto Python (podobne win32con) zostaną zaimportowane, ale moduły rozszerzeń C (podobne win32api) nie będą; jeśli zainstalujesz Python 2.6, a następnie zainstaluj rozszerzenia dla wersji 2.7, mogą zostać zaimportowane, ale później ulegną awarii; itp.
10
Dlaczego na Ziemi migrowano z przepełnienia stosu ?!
Jean-François Corbett

Odpowiedzi:

10
  1. Uruchom wiersz poleceń z uprawnieniami administratora.
  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

Gdzie speak.pyskłada się z tego tekstu:

import win32com.client

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

Działa dobrze w Pythonie 3.6.4 bez stosu 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 grudnia 2017, 15:23:10) [MSC v.1900 64 bit (AMD64)] na Win32. Waniliowy CPython spotyka się tutaj:

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
źródło
4

Sprawdź sys.path, aby upewnić się, że znajduje się tam katalog, w którym moduł jest zainstalowany, w przeciwnym razie musisz go dodać (pomoc w Windows PYTHONPATH).


źródło
1
Dzięki za radę. Problem okazał się być czymś innym: z jakiegoś powodu w rejestrze były dwie różne instalacje Pythona, choć obie wskazują te same pliki. Ponowna instalacja na obu rozwiązała problem.
Próbowałem skonfigurować PYTHONPATH w zmiennej środowiskowej i nadal nie widzę, że działa. uzyskiwanie tego samego błędu.
Soman Dubey
Dla tych z was, którzy teraz zainstalowali pakiet, z którym łączyło się OP, należy ponownie uruchomić konsolę Python (np. IDLE), aby wprowadzić niezbędne zmiany w PYTHONPATH, aby wypełnić takie pola, aby importdziałały.
SeldomNeedy
2

Miałem ten sam problem dopiero wczoraj. Zainstalowałem pypiwin32za pomocą pip.

Próbować

>>pip install -U pypiwin32

w wierszu polecenia

Upewnij się, że Twój pakiet Python znajduje się w systemie PATH.

Zauważ, że istnieje kilka różnych sposobów instalowania modułów Python, a ponieważ odkryłeś, że nie wszystkie z nich działają. pip installz -Upracował dla mnie z pypiwin32modułem (który zawiera win32com).

David Willis
źródło
1
-UPrzełącznik oznacza --upgradei pypi.org/project/pypiwin32 jest lepiej zapakowane (format .whl) pypi.org/project/pywin32 przez samych deweloperów. Przeczytałem, że python -m pipjest to preferowane ze pipwzględów ścieżkowych.
Cees Timmerman
To zadziałało dla mnie. Zauważ, że jeśli TypeError: 'module' object is not callablepython -m pip install -U pypiwin32
pojawia się
-2

poszukaj pliku na swoim komputerze, wyszukując na swoim komputerze „win32api”, gdy go znajdziesz, umieść go tutaj C: \ Python26 \ Lib \ win32com ”. Przypuszczam, że już zainstalowałeś bibliotekę win32com, a plik, który myślę, znajdziesz w„ C : \ Python26 \ Lib \ site-packages \ win32 „Po tym wszystkim plik powinien znajdować się w tych dwóch miejscach na twoim komputerze, aby moduł mógł działać, to jest w fini”.

użytkownik347582
źródło