Як встановити бібліотеку python win32com


18

Я намагаюся встановити модуль win32com. Я знаю, що я повинен завантажити розширення Python для Windows , але це не працює.

Після того як я встановив Python для Windows і спробую import win32com.client, я отримаю таке повідомлення про помилку:

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

Спроба Google отримати допомогу щодо встановлення win32api для Python також не допомагає; Мене знову посилають на розширення Python для Windows.


1
Ви встановили правильний бінарний файл розширень Python для Windows для вашої версії Python? Наприклад, якщо ви встановите 64-розрядний Python, то встановіть 32-розрядні розширення, модулі з чистим Python (як win32con) будуть імпортуватися, але модулі з розширенням C (як win32api) не будуть; якщо ви встановите Python 2.6, то встановіть розширення для 2.7, вони можуть імпортуватись, але згортатимуться згодом; пр.

10
Чому на Землі це було перенесено із переливу стека ?!
Жан-Франсуа Корбетт

Відповіді:


10
  1. Запустіть командний рядок з правами адміністратора.
  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

Де speak.pyскладається цей текст:

import win32com.client

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

Відмінно працює на Python 3.6.4 Stackless 3.1b3 060516 (v3.6.4-slp: 9557b2e530, 21 грудня 2017, 15:23:10) [MSC v.1900 64 біт (AMD64)] на win32. Тут висить ванільний CPython:

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

Перевірте sys.path, щоб переконатися, що каталог, де встановлений модуль, знаходиться там, інакше вам доведеться його додати (для отримання допомоги в цьому допомога вікна google PYTHONPATH.)


1
Дякую за пораду. Проблема виявилася дещо іншою: чомусь у реєстрі було дві різні установки Python, хоча обидві вказували на одні і ті ж файли. Повторна установка його на обидва вирішила проблему.

Я спробував налаштувати PYTHONPATH в змінну середовища, і все ще не бачу, як це працює. отримання тієї ж помилки.
Soman Dubey

Для тих із вас, хто зараз встановив пакет, з яким пов’язаний ОП, вам потрібно буде перезапустити консоль Python (наприклад, IDLE) для необхідних змін у PYTHONPATH, щоб заповнити так, щоб ваш importпрацював.
SeldomNeedy

2

У мене була така ж проблема лише вчора. Я встановив pypiwin32за допомогою pip.

Спробуйте

>>pip install -U pypiwin32

у командному рядку

Переконайтеся, що ваш пакет Python знаходиться в системі PATH.

Зауважте, що існує кілька різних способів встановлення модулів Python, і як ви виявили, не всі вони працюють. pip installз -Uпрацював для мене з pypiwin32модулем (який містить win32com).


1
-UПеремикач означає --upgradeі pypi.org/project/pypiwin32 це краще упаковано (формат .whl) pypi.org/project/pywin32 одні і ті ж розробники. Я читав, що python -m pipвважається за краще саме pipз міркувань.
Cees Timmerman

Це працювало для мене. Зауважте, що якщо ви отримуєте повідомлення про помилку TypeError: 'module' object is not callable, спробуйте:python -m pip install -U pypiwin32
datalifenyc

-2

шукайте файл у своєму комп’ютері, шукаючи у всьому комп’ютері "win32api", як тільки ви знайдете його, покладіть його сюди C: \ Python26 \ Lib \ win32com ", це передбачає, що ви вже встановите бібліотеку win32com, і ви знайдете файл, на який я думаю, в" C : \ Python26 \ Lib \ site-пакети \ win32 "Зрештою, файл повинен бути розташований у цих двох місцях на вашому комп'ютері, щоб ваш модуль працював, це все у фіні".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.