我开始使用" pywinauto"并试图导入它,我最初收到一条消息,说模块win32api
丢失了。我尝试了该模块的pip安装,但收到一条消息,说没有找到令人满意的版本。
然后我从网上下载了它的副本,当我尝试安装它时告诉我,我的系统上没有安装Python 3.6(!)
我有许多早期版本的安装,并担心它们可能会导致问题所以我删除它们并再次尝试,但没有成功。我的可执行文件的路径是C:\Python36\python.exe
。
我转到site-packages
文件夹并删除了pywinauto
和pywinauto-0.6.4-py3.6.egg-info
文件夹并进行了新的pip安装,结束时显示消息:"已成功安装pywinauto-0.6。 4"并试图再次导入它。
这次我得到了以下内容:
import pywinauto
File "C:\Python36\lib\site-packages\pywinauto\__init__.py", line 72, in <module>
from . import findwindows
File "C:\Python36\lib\site-packages\pywinauto\findwindows.py", line 42, in <module>
from . import controls
File "C:\Python36\lib\site-packages\pywinauto\controls\__init__.py", line 36, in <module>
from . import uiawrapper # register "uia" back-end (at the end of uiawrapper module)
File "C:\Python36\lib\site-packages\pywinauto\controls\uiawrapper.py", line 46, in <module>
from ..uia_defines import IUIA
File "C:\Python36\lib\site-packages\pywinauto\uia_defines.py", line 181, in <module>
pattern_ids = _build_pattern_ids_dic()
File "C:\Python36\lib\site-packages\pywinauto\uia_defines.py", line 169, in _build_pattern_ids_dic
if hasattr(IUIA().ui_automation_client, cls_name):
File "C:\Python36\lib\site-packages\pywinauto\uia_defines.py", line 50, in __call__
cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
File "C:\Python36\lib\site-packages\pywinauto\uia_defines.py", line 63, in __init__
self.ui_automation_client.CUIAutomation().IPersist_GetClassID(),
AttributeError: module 'comtypes.gen.UIAutomationClient' has no attribute 'CUIAutomation'
此时我真的不知道该怎么做。似乎其中一个导入的文件缺少另一个需要的东西。我会很感激任何想法......
答案 0 :(得分:0)
可以安装正确的依赖项:
pip install pywin32
之前它是pypiwin32
,但在这些软件包维护中发生了一些变化,pywin32
再次成为正式版。 pywinauto 0.6.5很快就会反映出这些变化。
第二个问题看起来像已知的comtypes问题,为UI自动化类型库生成缓存文件。解决方法假定至少第一次以管理员身份运行脚本以访问comtypes缓存文件夹。不幸的是,comtypes维护者不是那么活跃,并且有许多拉取请求具有非常类似的修复,并且它们仍然未被接受。