用不了不懂什么原因
在提问之前...
- [x] 我已经搜索了现有的 issues
- [x] 我在提问题之前至少花费了 5 分钟来思考和准备
- [x] 我已经阅读了文档中的 常见问题(FAQ)
- [x] 这个问题出现了至少三次,不是偶发的
- [ ] 我使用 OAS 的 dev 分支
描述你的问题
ERROR | 18:40:45.535 | FileNotFoundError: [Errno 2] No such file or
directory:
'./tasks/Component/CostumeBattle/battle7/battle6_friends_7.png'
╭───────────────── Traceback (most recent call last) ─────────────────╮
│ D:\OnmyojiAutoScript-easy-install\script.py:353 in run │
│ │
│ 350 │ │ │ module_path = str(Path.cwd() / 'tasks' / command │
│ 351 │ │ │ logger.info(f'module_path: {module_path}, module_ │
│ 352 │ │ │ task_module = load_module(module_name, module_pat │
│ ❱ 353 │ │ │ task_module.ScriptTask(config=self.config, device │
│ 354 │ │ except TaskEnd: │
│ 355 │ │ │ return True │
│ 356 │ │ except GameNotRunningError as e: │
│ │
│ ╭──────────────────────────── locals ─────────────────────────────╮ │
│ │ command = 'Exploration' │ │
│ │ e = FileNotFoundError(2, 'No such file or directory') │ │
│ │ module_name = 'script_task' │ │
│ │ module_path = 'D:\OnmyojiAutoScript-easy-install\tasks\Expl… │ │
│ │ self = <script.Script object at 0x000002441C964130> │ │
│ │ task_module = <module 'script_task' from │ │
│ │ 'D:\OnmyojiAutoScript-easy-install\tasks\Expl… │ │
│ ╰─────────────────────────────────────────────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\tasks\Exploration\solo.py:431 in │
│ run │
│ │
│ 428 │ │ random_click_cnt = 0 │
│ 429 │ │ while 1: │
│ 430 │ │ │ self.screenshot() │
│ ❱ 431 │ │ │ scene = self.get_current_scene() │
│ 432 │ │ │ if random_click_cnt >= 2: │
│ 433 │ │ │ │ break │
│ 434 │ │ │ if scene == Scene.UNKNOWN: │
│ │
│ ╭──────────────────────────── locals ─────────────────────────────╮ │
│ │ random_click_cnt = 0 │ │
│ │ self = <script_task.ScriptTask object at │ │
│ │ 0x000002443DA52DA0> │ │
│ ╰─────────────────────────────────────────────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\tasks\Exploration\base.py:72 in │
│ get_current_scene │
│ │
│ 69 │ │ │ return Scene.MAIN │
│ 70 │ │ elif self.is_in_prepare(): │
│ 71 │ │ │ return Scene.BATTLE_PREPARE │
│ ❱ 72 │ │ elif self.is_in_battle(): │
│ 73 │ │ │ return Scene.BATTLE_FIGHTING │
│ 74 │ │ elif self.is_in_room() or self.appear(self.I_CREATE_E │
│ 75 │ │ │ return Scene.TEAM │
│ │
│ ╭──────────────────────────── locals ─────────────────────────────╮ │
│ │ reuse_screenshot = True │ │
│ │ self = <script_task.ScriptTask object at │ │
│ │ 0x000002443DA52DA0> │ │
│ ╰─────────────────────────────────────────────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\tasks\Component\GeneralBattle\gen │
│ eral_battle.py:399 in is_in_battle │
│ │
│ 396 │ │ """ │
│ 397 │ │ if is_screenshot: │
│ 398 │ │ │ self.screenshot() │
│ ❱ 399 │ │ if self.appear(self.I_FRIENDS) or \ │
│ 400 │ │ │ │ self.appear(self.I_WIN) or \ │
│ 401 │ │ │ │ self.appear(self.I_FALSE) or \ │
│ 402 │ │ │ │ self.appear(self.I_REWARD): │
│ │
│ ╭──────────────────────────── locals ─────────────────────────────╮ │
│ │ is_screenshot = True │ │
│ │ self = <script_task.ScriptTask object at │ │
│ │ 0x000002443DA52DA0> │ │
│ ╰─────────────────────────────────────────────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\tasks\base_task.py:167 in appear │
│ │
│ 164 │ │ │ if not self.interval_timer[target.name].reached() │
│ 165 │ │ │ │ return False │
│ 166 │ │ │
│ ❱ 167 │ │ appear = target.match(self.device.image, threshold=th │
│ 168 │ │ │
│ 169 │ │ if appear and interval: │
│ 170 │ │ │ self.interval_timer[target.name].reset() │
│ │
│ ╭──────────────────────────── locals ─────────────────────────────╮ │
│ │ interval = None │ │
│ │ self = <script_task.ScriptTask object at │ │
│ │ 0x000002443DA52DA0> │ │
│ │ target = BATTLE6_FRIENDS_7 │ │
│ │ threshold = None │ │
│ ╰─────────────────────────────────────────────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\module\atom\image.py:151 in match │
│ │
│ 148 │ │ │ # raise Exception(f"unknown method {self.method}" │
│ 149 │ │ │
│ 150 │ │ source = self.corp(image) │
│ ❱ 151 │ │ mat = self.image │
│ 152 │ │ │
│ 153 │ │ if mat is None or mat.shape[0] == 0 or mat.shape[1] = │
│ 154 │ │ │ logger.error(f"Template image is invalid: {mat.sh │
│ #检测模板尺寸,不合法则不进行匹配,避免两次截图画面完全相同造 │
│ │
│ ╭───────────────────── locals ─────────────────────╮ │
│ │ image = array([[[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ ..., │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]]], dtype=uint8) │ │
│ │ self = BATTLE6_FRIENDS_7 │ │
│ │ source = array([[[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ ..., │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]], │ │
│ │ │ │ │
│ │ │ [[28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ ..., │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39], │ │
│ │ │ │ [28, 33, 39]]], dtype=uint8) │ │
│ │ threshold = 0.8 │ │
│ ╰──────────────────────────────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\module\atom\image.py:92 in image │
│ │
│ 89 │ │ :return: │
│ 90 │ │ """ │
│ 91 │ │ if self._image is None: │
│ ❱ 92 │ │ │ self.load_image() │
│ 93 │ │ return self._image │
│ 94 │ │
│ 95 │ @cached_property │
│ │
│ ╭───────── locals ─────────╮ │
│ │ self = BATTLE6_FRIENDS_7 │ │
│ ╰──────────────────────────╯ │
│ │
│ D:\OnmyojiAutoScript-easy-install\module\atom\image.py:69 in │
│ load_image │
│ │
│ 66 │ │ """ │
│ 67 │ │ if self._image is not None: │
│ 68 │ │ │ return │
│ ❱ 69 │ │ img = cv2.imdecode(fromfile(self.file, dtype=uint8), │
│ 70 │ │ img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) │
│ 71 │ │ self._image = img │
│ 72 │
│ │
│ ╭───────── locals ─────────╮ │
│ │ self = BATTLE6_FRIENDS_7 │ │
│ ╰──────────────────────────╯ │
╰─────────────────────────────────────────────────────────────────────╯
FileNotFoundError: [Errno 2] No such file or directory:
'./tasks/Component/CostumeBattle/battle7/battle6_friends_7.png'
WARNING | 18:40:51.078 | Saving error: ./log/error/1737542451078
INFO | 18:40:51.127 | Notifier: OAS5
INFO | 18:40:51.130 | Script oas5 process exit
ERROR | 18:40:51.132 | Error: 1
如何复现
- 前往 '...'
- 点击 '....'
- 滑动到 '....'
- 出现问题
预期行为
No response
相关 Logs
截图
No response
还有别的吗?
No response
https://github.com/runhey/OnmyojiAutoScript/commit/a2419312a9ad0bb531097554da49c414c3c20ee1
这个用dev分支