Не удается импортировать pywinauto в Windows 10

#python #python-3.x #pywinauto

#python #python-3.x #pywinauto

Вопрос:

Я установил pywinauto с помощью pip install pywinauto .

ОС: Windows 10

Python: 3.6.2

Когда я запускаю python и пытаюсь импортировать pywinauto , я получаю сообщение об ошибке:

 Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pywinauto.application import Application
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinauto__init__.py", line 89, in <module>
    from . import findwindows
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautofindwindows.py", line 42, in <module>
    from . import controls
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautocontrols__init__.py", line 36, in <module>
    from . import uiawrapper # register "uia" back-end (at the end of uiawrapper module)
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautocontrolsuiawrapper.py", line 47, in <module>
    from ..uia_defines import IUIA
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautouia_defines.py", line 181, in <module>
    pattern_ids = _build_pattern_ids_dic()
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautouia_defines.py", line 169, in _build_pattern_ids_dic
    if hasattr(IUIA().ui_automation_client, cls_name):
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautouia_defines.py", line 50, in __call__
    cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagespywinautouia_defines.py", line 60, in __init__
    self.UIA_dll = comtypes.client.GetModule('UIAutomationCore.dll')
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagescomtypesclient_generate.py", line 118, in GetModule
    mod = _CreateWrapper(tlib, pathname)
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagescomtypesclient_generate.py", line 183, in _CreateWrapper
    generate_module(tlib, ofi, pathname)
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagescomtypestoolstlbparser.py", line 750, in generate_module
    gen.generate_code(list(items.values()), filename=pathname)
  File "C:UsersJohnAppDataRoamingPythonPython36site-packagescomtypestoolscodegenerator.py", line 261, in generate_code
    tlib_mtime = os.stat(self.filename).st_mtime
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'UIAutomationCore.dll'
 

Есть идеи, как это исправить?

Комментарии:

1. Я не знаю, помогает ли это каким-либо образом, но, возможно, стоит попробовать загрузить это UIAutomationCore.dll из Интернета.

Ответ №1:

Сегодня у меня такая же проблема, и я ее исправил pip install comtypes==1.1.7 . Это вызвано библиотекой comtypes, которая выпустила новую версию 1.1.8 26 декабря. Понизьте до предыдущей версии, теперь она работает хорошо.

Комментарии:

1. Теперь это исправлено comtypes==1.1.9 . Пожалуйста, проверьте.

Ответ №2:

Это должно быть исправлено в comtypes == 1.1.9. Пожалуйста, проверьте.

Проблема была введена comtypes==1.1.8 в. Моя ошибка.

Комментарии:

1. Да, Windows PATH — это горячий беспорядок. Но import pywinauto он перестал работать, не касаясь PATH переменной. Либо одна из тех установок, которые я сделал, изменила мою PATH , чтобы заставить ее работать, либо происходит что-то еще.

2. Проблема была в comtypes . Я исправил это comtypes==1.1.9 . Пожалуйста, проверьте.

3. Получение той же проблемы в comtypes == 1.1.9 также … убрано до 1.1.7, и оно работает хорошо

4. Та же проблема сохраняется в 1.1.12, понижение ее до 1.1.9 сработало для меня. Спасибо @VasilyRyabov за предупреждение

5. @VasilyRyabov Да comtypes==1.1.11 , тоже работает, избавьтесь от этой ошибки.

Ответ №3:

Попробуйте использовать другую версию python (например, 3.7.5 или 3.8):

https://github.com/pywinauto/pywinauto/issues/887

«Была такая же проблема с Python 3.7.6 и 3.8.1. Проблема не возникает в 3.7.5 или 3.8. Я думаю, это будет исправлено в 3.8.2 (но пока не уверен)»

Комментарии:

1. Итак, я установил различные версии Python, и в каждом случае я это делал python3.x -m pip install pywinauto . В каждом случае установка завершена успешно. После каждой установки я запускал соответствующий Python и пробовал import pywinauto . Версии, которые я установил, были 3.7.3, 3.7.9, 3.8.7 и 3.9.1 (в дополнение к оригинальной версии 3.6.2). В каждом случае я получал сообщение об ошибке, как описано в моем исходном сообщении. Поэтому я решил опубликовать этот комментарий и import pywinauto снова начал работать в каждой из этих версий python. К моему полному удивлению, оригинальная версия 3.6.2 теперь работает!!! Тайны Windows!!!

2. Возможно, это новая версия comtypes. Попробуйте comtypes==1.1.7.

3. comtypes==1.1.10 имеет более правильное исправление как для Win7, так и для Win10, просто к вашему сведению.

Ответ №4:

Попробуйте это, для меня работает нормально

  1. Установите pywin32 из https://github.com/mhammond/pywin32/releases
  2. pip install -U comtypes
  3. pip install six
  4. pip install Pillow
  5. cd c:windowssyswow64
  6. regsvr32 UIAutomationCore.dll
  7. python
  8. import pywinauto #и проблема должна быть решена

У меня Win10 и python 3.9 ….. мне не нравится Win10, другой вещью может быть ваша библиотека numpy, удалите ее и установите снова. pip удаление numpy pip установка numpy

Кредиты -> https://www.dll-files.com/download/65996a0afad353ec43ffe1ca69a2be88/uiautomationcore.dll.html?c=TTM2MGJJaHVRaEJkM1JyNDB3TDNwZz09

Комментарии:

1. Установка Pillow, похоже, помогла мне в Windows 7.

2. Это должно быть исправлено comtypes==1.1.9 без каких-либо других трюков. Пожалуйста, проверьте.