JupyterLab运行Shell命令时如何像Google Colab一样接收用户stdin输入?
JupyterLab实现Shell命令交互输入的方法
- 方案1:升级到支持交互输入的版本
JupyterLab 3.1及以上版本已经官方内置了!开头Shell命令的stdin输入支持,和Colab的使用逻辑完全一致,运行命令遇到交互提示时输出单元格会自动弹出输入框,输入内容后按回车即可传递给Shell进程。
升级命令:pip install --upgrade jupyterlab
升级完成后重启JupyterLab服务即可生效。 - 方案2:手动适配交互逻辑
若暂时无法升级版本,可以通过Python内置的input()方法提前捕获用户输入,再传递给Shell命令,针对你给出的tensorboard示例代码可以改写为:
支持静默参数的命令也可以直接加参数跳过交互步骤,比如上述tensorboard命令可以直接添加confirm = input("Continue? (yes/NO)") if confirm.strip().lower() == "yes": !tensorboard dev upload --logdir tb_logs --name "OntologyTagger" --description "OntologyTagger" --one_shot--yes参数跳过确认:!tensorboard dev upload --logdir tb_logs --name "OntologyTagger" --description "OntologyTagger" --one_shot --yes - 方案3:使用内置终端运行
对于有多步交互需求的复杂命令,可以直接点击JupyterLab顶部菜单栏「新建→终端」,在原生终端中运行命令,完全支持所有终端交互能力。
内容的提问来源于stack exchange,提问作者user16341274
相关产品推荐
相关产品推荐

