Pywinauto app = Application.start() 不工作并给出错误
Pywinauto app = Application.start() is not working and giving error
当我尝试使用 pywinauto 启动 exe 文件时出现错误。这是我的代码:
from pywinauto.application import Application
app = Application()
app.Start("D:\dragonboy160\dragonboy160.exe")
据我所知应该可以。 app = Application().start("")
也不行。我也试过像这样设置导入: from pywinauto import Application
当我 运行 python 文件 PyCharm:
时出现这个错误
"C:\Program Files (x86)\python.exe" D:/dragonboy160/screenview.py
Traceback (most recent call last):
File "D:/dragonboy160/screenview.py", line 2, in <module>
import pywinauto
File "C:\Program Files (x86)\lib\site-packages\pywinauto\__init__.py", line 40, in <module>
from . import findwindows
File "C:\Program Files (x86)\lib\site-packages\pywinauto\findwindows.py", line 42, in <module>
from . import controls
File "C:\Program Files (x86)\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 (x86)\lib\site-packages\pywinauto\controls\uiawrapper.py", line 44, in <module>
from ..uia_defines import IUIA
File "C:\Program Files (x86)\lib\site-packages\pywinauto\uia_defines.py", line 35, in <module>
import comtypes.client
File "C:\Program Files (x86)\lib\site-packages\comtypes\client\__init__.py", line 33, in <module>
gen_dir = _find_gen_dir()
File "C:\Program Files (x86)\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
我查了查,好像没有其他人遇到过这个问题。我也尝试打开其他 .exe 文件,但得到了同样的错误。是什么导致了这个错误,我该如何解决?
这是一个导入问题(在第一行)。
这看起来 comtypes
在没有管理员权限的情况下无法将缓存文件写入 Program files
。理论上它可能在 comtypes 端被修复(或者通过将 Python 重新安装到另一个文件夹,如 C:\Python3x
),但是 你必须 运行 脚本作为管理员anyway 因为其他OS 限制(pywinauto 会在最近的将来警告权限不足,现在它是无声的)。
我遇到了同样的问题,我设法通过从 Windows 禁用 UAC
来修复它。
当我尝试使用 pywinauto 启动 exe 文件时出现错误。这是我的代码:
from pywinauto.application import Application
app = Application()
app.Start("D:\dragonboy160\dragonboy160.exe")
据我所知应该可以。 app = Application().start("")
也不行。我也试过像这样设置导入: from pywinauto import Application
当我 运行 python 文件 PyCharm:
"C:\Program Files (x86)\python.exe" D:/dragonboy160/screenview.py
Traceback (most recent call last):
File "D:/dragonboy160/screenview.py", line 2, in <module>
import pywinauto
File "C:\Program Files (x86)\lib\site-packages\pywinauto\__init__.py", line 40, in <module>
from . import findwindows
File "C:\Program Files (x86)\lib\site-packages\pywinauto\findwindows.py", line 42, in <module>
from . import controls
File "C:\Program Files (x86)\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 (x86)\lib\site-packages\pywinauto\controls\uiawrapper.py", line 44, in <module>
from ..uia_defines import IUIA
File "C:\Program Files (x86)\lib\site-packages\pywinauto\uia_defines.py", line 35, in <module>
import comtypes.client
File "C:\Program Files (x86)\lib\site-packages\comtypes\client\__init__.py", line 33, in <module>
gen_dir = _find_gen_dir()
File "C:\Program Files (x86)\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
我查了查,好像没有其他人遇到过这个问题。我也尝试打开其他 .exe 文件,但得到了同样的错误。是什么导致了这个错误,我该如何解决?
这是一个导入问题(在第一行)。
这看起来 comtypes
在没有管理员权限的情况下无法将缓存文件写入 Program files
。理论上它可能在 comtypes 端被修复(或者通过将 Python 重新安装到另一个文件夹,如 C:\Python3x
),但是 你必须 运行 脚本作为管理员anyway 因为其他OS 限制(pywinauto 会在最近的将来警告权限不足,现在它是无声的)。
我遇到了同样的问题,我设法通过从 Windows 禁用 UAC
来修复它。