运行使用pywinauto的脚本时出现错误

问题描述 投票:0回答:1

[每当我导入pywinauto时,我都会遇到以下错误”追溯(最近一次通话):WINFUNCTYPE中的文件“ D:\ Python \ Python38 \ lib \ ctypes_init_.py”,第123行返回_win_functype_cache [(restype,argtypes,标志)]KeyError:(,(,,,),0)

在处理以上异常期间,发生了另一个异常:

追踪(最近通话):文件“ C:/Users/tejaw/PycharmProjects/xxxxxxxx/Sample.py”,第3行,在导入pywinauto文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto_init_.py”,第89行,在来自。导入findwindows在第42行的“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ findwindows.py”文件中来自。进口管制文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ controls_init_.py”,第36行,在来自。 import uiawrapper#注册“ uia”后端(在uiawrapper模块的末尾)文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ controls \ uiawrapper.py”,第47行,在从..uia_defines导入IUIA文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ uia_defines.py”,第181行,位于pattern_ids = _build_pattern_ids_dic()_build_pattern_ids_dic中的第169行的文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ uia_defines.py”如果hasattr(IUIA()。ui_automation_client,cls_name):调用中的文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ uia_defines.py”,第50行cls._instances [cls] =超级(_Singleton,cls).call(* args,** kwargs)初始化文件“ D:\ Python \ Python38 \ lib \ site-packages \ pywinauto \ uia_defines.py”,第60行self.UIA_dll = comtypes.client.GetModule('UIAutomationCore.dll')GetModule中的文件“ D:\ Python \ Python38 \ lib \ site-packages \ comtypes \ client_generate.py”,行110mod = _CreateWrapper(tlib,路径名)_CreateWrapper中的文件“ D:\ Python \ Python38 \ lib \ site-packages \ comtypes \ client_generate.py”,行184mod = _my_import(全名)在my_import中的文件“ D:\ Python \ Python38 \ lib \ site-packages \ comtypes \ client_generate.py”,第24行返回import(全名,globals(),locals(),['DUMMY'])第1931行的文件“ D:\ Python \ Python38 \ lib \ site-packages \ comtypes \ gen_944DE083_8FB8_45CF_BCB7_C477ACB2F897_0_1_0.py”IUIAutomation.methods = [setattr中的文件“ D:\ Python \ Python38 \ lib \ site-packages \ comtypes_init.py”,第329行self.make_methods(值)在make_methods中的行698中的文件“ D:\ Python \ Python38 \ lib \ site-packages \ comtypes_init.py”原型= WINFUNCTYPE(restype,* argtypes)WINFUNCTYPE中的文件“ D:\ Python \ Python38 \ lib \ ctypes_init.py”,第125行WinFunctionType(_CFuncPtr)类:TypeError:argtypes中的项目2通过值传递并集,该值不受支持。“

请为此提供帮助。

python-3.x windows automation pywinauto
1个回答
0
投票

这是Python 2.7.6和3.8.1中的Python错误。请全新安装Python 3.7.7+或3.8.2 +。

问题的完整历史记录在这里:https://github.com/pywinauto/pywinauto/issues/868

这是libffi中缺少的用于按值传递并集的功能。 ctypes使用libffi在运行时解析调用约定。由于缺少功能,Python Core开发人员决定禁止此选项。但是,错误的决定使Windows上的许多用户失望。因此,错误的补丁已在Python 3.7.7 / 3.8.2中恢复。

© www.soinside.com 2019 - 2024. All rights reserved.