So installieren Sie die Win32com-Python-Bibliothek

17

Ich versuche das win32com-Modul zu installieren. Ich weiß, ich sollte die Python für Windows-Erweiterung herunterladen , aber es funktioniert nicht.

Nachdem ich Python für Windows installiert und versucht import win32com.clienthabe, wird die folgende Fehlermeldung angezeigt:

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

Der Versuch, bei Google nach Hilfe zur Installation von win32api für Python zu suchen, hilft ebenfalls nicht. Ich werde gerade wieder auf die Python für Windows-Erweiterungen verwiesen.

NiklasR
quelle
1
Haben Sie die richtige Binärdatei von Python für Windows-Erweiterungen für Ihre Python-Version installiert? Wenn Sie beispielsweise 64-Bit-Python installieren und dann die 32-Bit-Erweiterungen installieren, werden die reinen Python-Module (wie win32con) importiert, die C-Erweiterungsmodule (wie win32api) jedoch nicht. Wenn Sie Python 2.6 installieren und dann die Erweiterungen für 2.7 installieren, werden sie möglicherweise importiert, stürzen jedoch später ab. usw.
8
Warum um alles in der Welt wurde dies von Stack Overflow migriert?!
Jean-François Corbett

Antworten:

9
  1. Starten Sie eine Befehlszeile mit Administratorrechten.
  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

Wo speak.pybesteht dieser Text:

import win32com.client

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

Funktioniert einwandfrei mit Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21. Dezember 2017, 15:23:10) [MSC v.1900 64-Bit (AMD64)] unter win32. Vanilla CPython hängt hier rum:

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

Überprüfen Sie sys.path, um sicherzustellen, dass sich das Verzeichnis dort befindet, in dem das Modul installiert ist. Andernfalls müssen Sie es hinzufügen (Google PYTHONPATH Windows bietet Hilfe dazu.)


quelle
1
Danke für den Hinweis. Das Problem stellte sich als etwas anderes heraus: Aus irgendeinem Grund gab es zwei verschiedene Python-Installationen in der Registrierung, obwohl beide auf dieselben Dateien verweisen. Eine Neuinstallation auf beiden Geräten löste das Problem.
Ich habe versucht, PYTHONPATH in der Umgebungsvariablen einzurichten, sehe dies jedoch immer noch nicht. den gleichen Fehler bekommen.
Soman Dubey
Für diejenigen unter Ihnen, die jetzt das von OP verknüpfte Paket installiert haben, müssen Sie Ihre Python-Konsole (z. B. IDLE) neu starten, damit die erforderlichen Änderungen an PYTHONPATH vorgenommen importwerden können, damit sie funktionieren.
Selten
2

Ich hatte erst gestern das gleiche Problem. Ich installierte pypiwin32verwenden pip.

Versuchen

>>pip install -U pypiwin32

an der Eingabeaufforderung

Stellen Sie sicher, dass sich Ihr Python-Paket im Systempfad befindet.

Beachten Sie, dass es verschiedene Möglichkeiten gibt, Python-Module zu installieren, und wie Sie festgestellt haben, funktionieren nicht alle. pip installmit -Uarbeitete für mich mit dem pypiwin32Modul (das enthält win32com).

David Willis
quelle
1
Der -USchalter steht für --upgradeund pypi.org/project/pypiwin32 ist ein besser gepacktes (.whl-Format) pypi.org/project/pywin32 von denselben Entwicklern. Ich habe gelesen, dass dies python -m pipnur pipaus Pfadgründen bevorzugt wird .
Cees Timmerman
Das hat bei mir funktioniert. Beachten Sie, dass, wenn Sie die Fehlermeldung erhalten TypeError: 'module' object is not callable, versuchen Sie:python -m pip install -U pypiwin32
datalifenyc
-2

Suchen Sie nach der Datei auf Ihrem Computer, indem Sie in Ihrem gesamten Computer nach "win32api" suchen. Sobald Sie sie gefunden haben, geben Sie sie hier ein. C: \ Python26 \ Lib \ win32com "Vorausgesetzt, Sie haben die win32com-Bibliothek bereits installiert, und Sie finden die Datei, die ich denke, in" C. : \ Python26 \ Lib \ site-packages \ win32 "Nachdem sich die Datei an diesen beiden Stellen auf Ihrem Computer befinden sollte, damit Ihr Modul funktioniert, ist es endlich fertig."

user347582
quelle