#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:
Попробуйте это, для меня работает нормально
- Установите pywin32 из https://github.com/mhammond/pywin32/releases
pip install -U comtypes
pip install six
pip install Pillow
cd c:windowssyswow64
regsvr32 UIAutomationCore.dll
python
import pywinauto
#и проблема должна быть решена
У меня Win10 и python 3.9 ….. мне не нравится Win10, другой вещью может быть ваша библиотека numpy, удалите ее и установите снова. pip удаление numpy pip установка numpy
Комментарии:
1. Установка Pillow, похоже, помогла мне в Windows 7.
2. Это должно быть исправлено
comtypes==1.1.9
без каких-либо других трюков. Пожалуйста, проверьте.