我从pip安装“ pywinauto”开始并尝试导入它,最初我收到一条消息,提示模块win32api
丢失。我尝试对该模块进行点安装,但收到一条消息,提示找不到令人满意的版本。
然后,我从网络上下载了它的副本,当我尝试安装它时,它通知我系统上没有安装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'
在这一点上,我真的不知道该怎么办。似乎其中一个导入的文件缺少另一个文件所需要的内容。如果有任何想法,我将不胜感激。
最佳答案
可以安装正确的依赖项,以便:
pip install pywin32
以前是
pypiwin32
,但是这些软件包的维护有所更改,pywin32
再次成为正式文件。 pywinauto 0.6.5将很快反映这些变化。第二个问题类似于为UI自动化类型库生成缓存文件的已知类型问题。解决方法假定至少第一次以管理员身份运行脚本,才能访问comtypes缓存文件夹。不幸的是,商品维护者并不那么活跃,并且有许多拉动请求具有非常相似的修复程序,并且它们仍然挂着不被接受。
关于python-3.x - 我无法成功将pywinauto导入python 3.6.4,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50747002/