导入 pywinauto.application 在尝试使用 python 3.5.4 运行 时抛出错误

importing pywinauto.application throws error while trying to run using python 3.5.4

我试图在 windows 10 机器上使用 python 3.5.4,

执行以下命令
from pywinauto.application import Application

以下是我收到的错误

Traceback (most recent call last):
  File "C:/Users/bizact/Desktop/PSAV/test.py", line 1, in <module>
    from pywinauto.application import Application
  File "C:\Program Files\Python35\lib\site-packages\pywinauto\__init__.py", line 72, in <module>
    from . import findwindows
  File "C:\Program Files\Python35\lib\site-packages\pywinauto\findwindows.py", line 42, in <module>
    from . import controls
  File "C:\Program Files\Python35\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:\Program Files\Python35\lib\site-packages\pywinauto\controls\uiawrapper.py", line 46, in <module>
    from ..uia_defines import IUIA
  File "C:\Program Files\Python35\lib\site-packages\pywinauto\uia_defines.py", line 35, in <module>
    import comtypes.client
  File "C:\Program Files\Python35\lib\site-packages\comtypes\client\__init__.py", line 33, in <module>
    gen_dir = _find_gen_dir()
  File "C:\Program Files\Python35\lib\site-packages\comtypes\client\_code_cache.py", line 71, in _find_gen_dir
    result = os.path.abspath(gen_path[-1])
IndexError: list index out of range

有什么办法可以解决这个问题吗?

尝试 运行 具有管理权限的脚本。仅通过查看回溯,它看起来像是 pywinauto import 尝试写入但后来找不到的一些缓存文件,并且通常由于权限,脚本无法写入文件。如果以上方法不起作用,请尝试在其他地方安装 python(C:/Python 具有完全权限以隔离问题)

这是comtypes问题。它将很快修复(编辑:在 comtypes==1.1.7 中修复)。您可以降级到以前的版本之一:pip install comtypes==1.1.2。或者按照 Rodolfo 的建议,以管理员身份 运行 编写脚本(禁用 UAC 可能无济于事,需要通过弹出菜单向 "run as Administrator" 明确说明)。