ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

marimo 配置指南:运行时行为与编辑器设置快速上手

marimo 配置指南:运行时行为与编辑器设置快速上手 marimo 配置指南运行时行为与编辑器设置快速上手【免费下载链接】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速览marimo 配置只需几行 TOML就能让执行节奏和编辑器界面完全贴合你的工作习惯。一个真实场景你在写一个本地小库笔记本里 import 了它。改完utils.py里一行代码回到浏览器单元格输出却还是旧的。狂按 ShiftEnter 也没用——marimo 不知道模块变了。这不是 bug是 marimo 配置里一个开关没打开。下面按先给能跑的配置再逐项解释的方式带你把运行行为和编辑器界面一次调顺。先给一份最小可用配置把这段存到项目根目录的marimo.toml打开该目录下任意笔记本即生效[tool.marimo.runtime] on_cell_change lazy auto_instantiate false auto_reload lazy [tool.marimo.display] theme dark code_editor_font_size 16效果打开笔记本不自动跑全部单元格上游改动后下游只标 stale灰色提示你确认后手动运行模块文件被修改后相关单元格也会被标记界面切深色、代码字号 16。逐项说人话on_cell_change上游单元格跑完后下游是自动跟着跑autorun还是只标 stale 等你点头lazy。类比一下它就像群聊里有人改了共享文档你是收到已更新红点还是内容直接被改掉了。常改数据清洗链路的笔记本你会去把它设成lazy避免一跑跑到底。auto_instantiate打开时是否自动执行所有单元格。类比就是上车先不点火只把车开到位。打开即要跑几十秒以上查询的笔记本你会去把它设为false。auto_reload默认off模块文件变化与单元格无关。设为lazy后marimo 按 import 关系把受影响的单元格标 staleautorun则直接重跑。它比 IPython 的%autoreload更聪明只认真正导入了该模块的单元格。本地开发被 import 的包时你会去开它。theme和code_editor_font_size纯编辑器设置深色加稍大字号晚上写代码不累眼。想改全局观感时才动它也可以只在某个项目里覆盖。以上默认值都定义在 marimo/_config/config.py想确认某个项的缺省行为可以直接翻这里。另外配置不止放在pyproject.toml或marimo.toml里。笔记本文件头部的/// script块也能内嵌配置只对这个文件生效适合只怪这一个笔记本的情况# /// script # [tool.marimo.runtime] # on_cell_change lazy # auto_instantiate false # ///改完头部配置要重新打开该笔记本才会应用。高频问题答疑如何让 marimo 不再一改动就重跑把on_cell_change设为lazy。之后上游单元格变化下游只会出现 stale 标记不会连环执行。这是最常被调的一项也是团队里最容易吵起来的执行策略建议写进项目配置统一掉。如何让 marimo 打开时不自动运行所有单元格auto_instantiate false。注意它只在编辑模式下有效把笔记本作为 app 运行时不受影响。数据大、依赖重的笔记本会改它。marimo 深色主题怎么设置[tool.marimo.display]下写theme dark可选值还有light和system。也可以点右上角设置面板切换想全局生效、且换笔记本不丢就写进pyproject.toml。改了模块代码怎么让相关单元格自动刷新auto_reload lazy或autorun。前者只标记后者直接重跑。库开发场景基本都会开否则每次都得手动重启解释器。分角色配置方案三类典型用法推荐差异如下配置项数据探索应用开发教学演示on_cell_changelazyautorunlazyauto_instantiatefalsetruefalseauto_reloadlazyoffoffthemedarksystemlightdataframesrichrichplaindefault_sql_outputpolarsautonativedefault_table_page_size201010数据探索lazy 自动重载是主力配合深色和富表格显示边查边改不心疼。应用开发on_cell_change保持autorun让交互响应即时execution_type strict减少隐藏状态keymap.destructive_delete false防止误删有内容的单元格。教学演示全部手动控制输出用plain保证投屏可读字体调到 18。踩坑自查现象改了marimo.toml没反应。原因改错了文件层级——文件头/// script配置优先级高于项目级和项目级高于全局~/.marimo/config.toml。一行改法先cat marimo.toml确认编辑的是生效的那一份。现象一保存文件就被重排git diff 一片红。原因format_on_save或保存后 watcher 触发了重排重跑。一行改法[tool.marimo.save]下设format_on_save false。现象preset vim写了却没效果。原因键位覆盖要在overrides里配动作名vimrc 路径另配。一行改法keymap.vimrc指向你的 vimrc 文件或删掉 vimrc 直接用preset。延伸阅读官方文档 docs/guides/configuration/index.md 与运行时配置专页 docs/guides/configuration/runtime_configuration.md配合源码 marimo/_config/config.py 可以逐项核对默认值。【免费下载链接】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

延伸阅读

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