JupyterLab服务端部署:默认执行脚本并隐藏代码单元格的实现
解决方案
一、重构脚本为可调用函数
先把你的mcq_helper.py改成函数形式,同时加入自动隐藏输入单元格的逻辑,适配Jupyter环境:
import ipywidgets as widgets from IPython.display import display, Javascript def show_mcq(question, options): output = widgets.Output() with output: display(widgets.RadioButtons(options=options, description=question)) # 执行后自动隐藏当前单元格的输入区域 display(Javascript(""" const cell = Jupyter.notebook.get_selected_cell(); cell.input_area.style.display = 'none'; """)) display(output)
二、实现“无需显式%run,执行单元格默认运行脚本”
方法1:自动导入函数(最省心)
把修改后的mcq_helper.py放在Jupyter的工作目录里,或者把它所在的文件夹加到Python路径中。然后设置IPython启动自动导入:
- 终端里创建IPython启动目录(如果没有的话):
mkdir -p ~/.ipython/profile_default/startup - 在该目录下新建
00-load-mcq.py文件,内容就一行:from mcq_helper import show_mcq
这样每次启动JupyterLab时,show_mcq函数会自动加载,你在单元格里直接写调用语句就行,不用每次写导入或%run:
show_mcq("测试问题:选择正确选项?", ["选项A", "选项B", "选项C"])
方法2:用JupyterLab代码片段快速调用
如果不想改启动脚本,可以创建代码片段:
- 打开JupyterLab左侧的“代码片段”面板,新建一个片段。
- 把下面的内容粘贴进去:
from mcq_helper import show_mcq show_mcq("你的问题", ["选项1", "选项2"]) - 之后新建单元格时,直接插入这个片段,修改问题和选项后执行即可。
三、效果验证
执行单元格后,输入区域会立刻隐藏,只剩下单选框的输出;后续只需在单元格里调用show_mcq函数,完全不用写%run命令。
内容的提问来源于stack exchange,提问作者stockfishintraining
相关产品推荐
相关产品推荐

