如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为特定Python版本的程序作业自动评分环境,旨在提供标准化的评分运行时。镜像集成了路径中的指定Python版本,并预装核心评分工具(python-grader-utils、pytest),支持多种扩展场景的依赖库,适用于各类Python程序作业的自动化评分流程。
math-*、ml-*),按需集成扩展库(如科学计算、机器学习、数据库等)。graderutils、unittest系列、run-all-unittests等命令,简化评分流程配置。镜像标签遵循<Python版本>-<评分基础版本>格式,其中:
<Python版本>:镜像内置的Python版本(如3.5、3.7)。<评分基础版本>:底层https://github.com/apluslms/grading-base%E9%95%9C%E5%83%8F%E7%89%88%E6%9C%AC%EF%BC%88%E5%A6%82%602.0%60%E3%80%81%603.1%60%EF%BC%89%E3%80%82uN(N为递增数字),表示在软件版本不变的情况下的镜像更新(如3.5-2.0u1表示Python 3.5、评分基础2.0的第1次更新)。较新版本标签包含python-grader-utils版本,格式为<Python版本>-<grader-utils版本>-<评分基础版本>(如3.7-3.3-3.1表示Python 3.7、grader-utils 3.3、评分基础3.1)。
除基础标签外,提供以下功能扩展标签(前缀+基础标签格式,如math-3.9-3.5-4.0):
| 标签前缀 | 包含扩展包 | 用途 |
|---|---|---|
math-* | matplotlib、scipy、numpy、bokeh(科学计算与可视化);openpyxl、xlrd、xlwt(Excel解析) | 科学计算、数据可视化及Excel处理相关作业 |
ml-* | 在math-*基础上增加pandas、scikit-learn | 机器学习、数据分析相关作业 |
jupyter-* | 在ml-*基础上增加nbconvert、ipython | Jupyter笔记本作业评分 |
rdf-* | rdflib | RDF数据处理相关作业 |
xls-* | xlrd、xlwt | 仅需基础Excel文件解析的作业 |
ply-* | PLY(解析器与词法分析器生成器) | 语法解析相关作业 |
smt-* | 在ply-*基础上增加pysmt、dd | SMT求解与决策图相关作业 |
y2-* | pyqt6、coverage、networkx、pyvirtualdisplay | 《基础编程课程Y2》专用 |
mec-* | 在math-*基础上增加requests、bs4、validators | 《机电机器设计课程》专用 |
psql-* | PostgreSQL服务器、psycopg2 | 需要PostgreSQL数据库交互的作业 |
comp-* | requests、bs4、pandas、lxml、html5lib | 竞赛编程课程作业 |
本镜像适用于各类Python程序作业的自动化评分场景,尤其适合教育机构、在线编程平台等需要标准化评分环境的场景。具体适用范围包括:
3.9-4.0),通过graderutils或unittest进行代码评分。math-*标签,支持NumPy、SciPy等库的作业评分。ml-*标签,满足pandas、scikit-learn依赖的评分需求。y2-*、mec-*等专用标签,适配课程定制化依赖。psql-*标签,支持PostgreSQL交互代码的评分。镜像提供以下核心实用命令,用于简化评分流程配置:
5.1.1 graderutils
功能:执行python-grader-utils评分工具,支持多种参数配置。
语法:
bashgraderutils [--use-iotester] [--use-rpyc] [--novalidate] [--container] [--show-config] [--develop-mode] [--exercise-path <绝对路径>] -- [<测试配置绝对路径>]
参数说明:
--use-iotester:创建iotester所需的目录结构及权限。--use-rpyc:通过RPyC(远程Python调用)在独立进程中导入并执行学生代码。--novalidate:跳过测试配置文件的验证。--container:在基于grading-base的容器中运行时,将graderutils自身异常输出到stderr(通常不使用)。--show-config:将测试配置打印为警告信息。--develop-mode:显示所有未处理异常(无格式化),并隐含--show-config;默认情况下,测试配置错误会被通用错误信息掩盖,以避免泄露评分细节。--exercise-path <绝对路径>:指定评分测试运行目录(默认/exercise;个性化作业可设为/personalized_exercise)。说明:
grading-base的capture包装器执行graderutils.main(使用--use-rpyc时执行graderutils.__main__)。--use-iotester、--use-rpyc、--exercise-path外,其他参数均传递给Python模块。/exercise/test_config.yaml作为测试配置文件(即配置文件为test_config.yaml时,仅需执行graderutils)。5.1.2 unittest
功能:python3 -m unittest的别名,自动将/exercise添加到PYTHONPATH。
语法:
bashunittest [unittest参数]
5.1.3 unittest-capture
功能:基于capture包装器的unittest执行命令,自动将/exercise添加到PYTHONPATH;无错误时自动执行err-to-out(错误输出重定向到标准输出)。
语法:
bashunittest-capture [unittest参数]
5.1.4 unittest-testcase
功能:结合testcase(来自grading-base)和unittest的包装命令,自动将/exercise添加到PYTHONPATH。
语法:
bashunittest-testcase [-t 标题] [-p 分数] [-s 跳过条件] [unittest参数]
参数:
-t:测试标题。-p:测试分数。-s:跳过条件。unittest。grading-base的testcase文档。5.1.5 python-compile-all
功能:python3 -m compileall的别名,用于验证提交文件的Python语法。
语法:
bashpython-compile-all [compileall参数]
5.1.6 run-all-unittests
功能:一站式评分命令,可替代简单场景下的run.sh。
语法:
bashrun-all-unittests [-S] [-p 每个测试类分数]
流程:
-S跳过);若语法错误,终止测试。*test*.py的文件。unittest.TestCase的类,通过testcase和unittest执行测试。-S:跳过语法验证。-p:每个测试类通过时的分数(默认按配置)。graderutils)挂载练习目录(含test_config.yaml),执行基础评分:
bashdocker run --rm -v /本地练习目录:/exercise apluslms/python-grading:3.9-3.5-4.0 graderutils
run-all-unittests)对提交作业执行全流程测试(语法验证+单元测试):
bashdocker run --rm -v /本地提交目录:/submission -v /本地练习目录:/exercise apluslms/python-grading:3.9-3.5-4.0 run-all-unittests -p 5
(-p 5表示每个测试类满分5分)
math-*标签)运行需要NumPy和Excel解析的作业评分:
bashdocker run --rm -v /本地练习目录:/exercise apluslms/python-grading:math-3.9-3.5-4.0 graderutils --exercise-path /personalized_exercise
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务