英文:
python_on_whales.exceptions.DockerException: [...] The process cannot access the file because it is being used by another process
问题
我正在尝试在我的本地计算机上使UC伯克利的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 = this.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。
我已经使用Anaconda安装了Python:
>python --version
Python 3.10.9
我已将otter-grader安装到名为data111(我们课程的名称)的conda环境中,并下载并解
英文:
I am trying to get UC Berkeley's otter-grader (python package that uses Docker) to work on my local machine:
https://otter-grader.readthedocs.io/en/latest/tutorial.html
I run the following from the command prompt and it seems to work for awhile until I get an error:
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.
'
I am using Windows 11.
I have installed Python using Anaconda:
>python --version
Python 3.10.9
I have installed otter-grader into a conda environment called data111 (the name of our course)
I have downloaded and unzipped the tutorial folder.
I open command prompt and ran conda activate data111
and then otter assign demo.ipynb dist
and this successfully created the demo folder.
I installed Docker, opened it and logged in. Here is the version info from the command prompt:
>docker version
Client:
Cloud integration: v1.0.33
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:53:15 2023
OS/Arch: windows/amd64
Context: default
Server: Docker Desktop 4.20.1 (110738)
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:17 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
In the command prompt I did a wsl --update
. I checked the version like this:
>wsl --version
WSL version: 1.2.5.0
Kernel version: 5.15.90.1
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.1702
I have installed Ubuntu. I open Ubuntu and run this command for the version info:
:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
I went to Docker Settings> Resources> WSL Integration. I turned on Enable integration with additional distros for Ubuntu. (I tried it without this too.)
I check what is running:
>wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop-data Running 2
docker-desktop Running 2
I have worked with my university IT and gotten administrator privileges and temporarily disabled my anti-virus. I tried uninstalling and reinstalling everything. No luck. IT is also stumped. Please help!
答案1
得分: 0
这应该在Otter-Grader v4.4.1中修复。
英文:
This should be fixed in Otter-Grader v4.4.1.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论