ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何用 marimo check 在运行前检查并自动修复笔记本问题?

如何用 marimo check 在运行前检查并自动修复笔记本问题? 如何用 marimo check 在运行前检查并自动修复笔记本问题【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimomarimo 笔记本以纯 Python 文件存储运行前存在几类会直接导致无法执行或行为异常的问题变量在多个 cell 中重复定义、cell 之间形成循环依赖、代码存在语法错误、笔记本文件结构不符合 marimo 格式等。marimo check是 marimo CLI 内置的 linter 入口可以在不启动笔记本的情况下扫描这些问题并用--fix自动修复其中可自动修复的部分。前提是本机已安装 marimo安装方式见 docs/getting_started/installation.md。运行检查最基本的用法是检查当前目录下的所有笔记本docs/guides/lint_rules/index.md# 检查当前目录下所有笔记本 marimo check . # 只检查指定文件 marimo check notebook1.py notebook2.py不传任何文件参数时CLI 会按**/*.py、**/*.md、**/*.qmd三个模式递归扫描当前目录见 marimo/_cli/cli.py。如果你的目录里混有不是 marimo 笔记本的普通 Python 脚本可以加--ignore-scripts参数CLI 会忽略无法识别为 marimo 笔记本的文件。排查运行异常的推荐顺序是先跑一遍 linter 再手动调试docs/guides/troubleshooting.md给出的示例是marimo check my_notebook.py读懂检查结果默认verbose模式下命令会在扫描结束后输出两类汇总信息Found N issues.—— 发现 N 个问题Updated N files.—— 带--fix运行时有 N 个文件被就地更新。退出码行为见 marimo/_cli/cli.py遇到错误errored时直接以退出码 1 结束加上--strict后只要发现任何问题或产生了修复也会返回非零退出码。这意味着marimo check --strict .可以作为运行前或 CI 中的门禁退出码为 0 才继续执行后续步骤。需要机器可读的结果时用--format json输出 JSON 诊断该模式下不会流式打印逐条问题而是把汇总结果写入 stdout。自动修复哪些规则linter 的规则按严重级别分为 Breaking阻止运行、Runtime可能导致运行时问题、Formatting格式和 WASM影响 WASM/Pyodide 兼容性默认关闭四类。能否被--fix修复取决于规则本身完整清单见 Lint Rules可自动修复️MF001 general-formatting、MF007 markdown-indentation。例如 MF001 会检查缺失的 marimo import、格式不正确的 cell 定义、缺失的 app 初始化代码等结构问题MF001 文档说明这类问题会自动被marimo check --fix修复危险修复⚠️MF004 empty-cells删除只含空白、注释或pass的 cell、MR003 reusable-definition-order。这类修复会改变笔记本结构或代码行为必须额外加--unsafe-fixes才生效见 MF004 文档不可自动修复❌全部 Breaking 规则MB001–MB005和 Runtime 规则中的大部分例如 MB002 多 cell 定义同一变量、MB003 循环依赖只能按 understanding errors 指南手动修改。执行自动修复的命令注意--fix会就地修改被修复的笔记本文件建议先确保这些文件已纳入版本控制# 自动修复可修复的问题 marimo check --fix . # 同时启用可能改变代码行为的修复如删除空 cell marimo check --fix --unsafe-fixes .--fix修复完成后输出中会给出Updated N files.和剩余未修复问题的Found N issues.据此判断还剩多少需要手动处理。按需选择检查规则默认情况下大多数 lint 规则都是启用的。如果只想跑其中一部分规则用--select指定规则代码或前缀会替换配置文件中的设置用--ignore排除特定规则# 只检查 Breaking 类规则和 MR001 marimo check --select MB,MR001 . # 忽略 MF004、MF007 marimo check --ignore MF004,MF007 .WASM 规则MW001–MW003默认关闭。如果目标环境是 Pyodide/WASM可以通过--select MW把它们纳入检查范围例如 marimo 自身的exportwasm html 流程就使用select: [MW]来做兼容性 lint见 marimo/_cli/export/commands.py。验证与后续处理一条可执行的完整路径是marimo check .先做只读扫描确认问题数量和类型marimo check --fix .修复 ️ 类格式问题必要时加--unsafe-fixes对剩下的 ❌ 类问题如 MB002 重复定义、MB003 循环依赖按提示定位到具体 cell 手动修改参考 循环依赖示例 等单条规则文档重新运行marimo check .当输出中不再出现Found N issues.或在--strict下退出码为 0后再运行笔记本。需要注意的边界linter 在运行前无法发现运行时错误只能保证结构、依赖和语法层面的问题被处理规则的具体启用情况还受 marimo 配置系统影响--select/--ignore只在当前命令中覆盖这些设置。【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进