Windows11下Otter-Grader调用Docker遇文件占用错误求助
Otter-Grader在Windows 11下Docker文件拷贝报错求助
我正在本地Windows 11机器上运行加州大学伯克利分校的Otter-Grader(一款依赖Docker的Python包),执行以下命令时前期运行正常,但中途出现错误:
otter grade -p submissions\ipynbs -a dist\autograder\demo-autograder_*.zip --pdfs -v
错误日志如下:
[INFO otter.grade.main] Launching Docker containers [INFO otter.grade.containers.grade_assignments] Grading submissions\ipynbs\demo-fails2Hidden.ipynb in container 28299aa6a8e0... [INFO otter.grade.containers.grade_assignments] Grading submissions\ipynbs\demo-fails2.ipynb in container 936846ac6e5a... [INFO otter.grade.containers.grade_assignments] Grading submissions\ipynbs\demo-fails3.ipynb in container 1efe9a22d9dd... [INFO otter.grade.containers.grade_assignments] Grading submissions\ipynbs\demo-fails1.ipynb in container a02da87f955b... [INFO otter.grade.containers.grade_assignments] Grading submissions\ipynbs\demo-fails3Hidden.ipynb in container 9dc9a732b97a... [INFO otter.grade.containers.grade_assignments] Grading submissions\ipynbs\demo-passesAll.ipynb in container bdb824858fdf... Traceback (most recent call last): File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\Scripts\otter.exe\__main__.py", line 7, in <module> File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\click\core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\click\core.py", line 1055, in main rv = self.invoke(ctx) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\click\core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\click\core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\click\core.py", line 760, in invoke return __callback(*args, **kwargs) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\otter\cli.py", line 32, in wrapper return f(*args, **kwargs) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\otter\cli.py", line 155, in grade_cli g = grade(*args, **kwargs) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\otter\grade\__init__.py", line 78, in main grade_dfs = launch_grade(autograder, File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\otter\grade\containers.py", line 115, in launch_grade return [df.result() for df in finished_futures[0]] File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\otter\grade\containers.py", line 115, in <listcomp> return [df.result() for df in finished_futures[0]] File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\concurrent\futures\_base.py", line 451, in result return self.__get_result() File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\concurrent\futures\_base.py", line 403, in __get_result raise self._exception File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\concurrent\futures\thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\otter\grade\containers.py", line 189, in grade_assignments docker.container.copy((container, container_path), local_path) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\python_on_whales\components\container\cli_wrapper.py", line 482, in copy run(full_cmd + [source, destination]) File "C:\Users\bl222\AppData\Local\anaconda3\envs\data111\lib\site-packages\python_on_whales\utils.py", line 177, in run raise DockerException( python_on_whales.exceptions.DockerException: The docker command executed was `C:\Program Files\Docker\Docker\resources\bin\docker.EXE container cp 9dc9a732b97a7f7e0c967f09966251e44231ab27d17234db04d5a4bda6826455:/autograder/submission/demo-fails3Hidden.ipynb C:\Users\bl222\AppData\Local\Temp\tmpypvgy7rt`. It returned with code 1 The content of stdout is '' The content of stderr is 'remove C:\Users\bl222\AppData\Local\Temp\tmpypvgy7rt: The process cannot access the file because it is being used by another process. '
我的环境信息:
- 操作系统:Windows 11
- Python:Anaconda安装的3.10.9版本,在名为data111的conda环境中安装了Otter-Grader
- Docker:Docker Desktop 4.20.1(Engine版本24.0.2),已登录
- WSL:版本1.2.5.0,已安装Ubuntu 22.04.2 LTS,已开启Docker与WSL的集成
我已经尝试过获取管理员权限、临时禁用杀毒软件、卸载重装所有相关软件等方法,但问题仍未解决,学校IT团队也无法排查出原因,寻求技术帮助。
内容的提问来源于stack exchange,提问作者b-ocean
相关产品推荐
相关产品推荐

