You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测Python脚本是否通过bokeh serve启动运行?

检测Bokeh脚本的运行模式:bokeh serve 还是直接运行

可行方案1:检查命令行参数

直接运行脚本时,sys.argv仅包含脚本路径和自定义参数;通过bokeh serve启动时,参数列表会包含bokeh、serve关键字。可以通过判断参数中是否存在serve来区分:

import sys

def is_bokeh_serve_mode():
    return 'serve' in sys.argv

if is_bokeh_serve_mode():
    # 执行Bokeh服务模式下的逻辑
    from bokeh.plotting import curdoc
    doc = curdoc()
    # 在这里添加你的Bokeh可视化组件
else:
    # 执行直接运行的逻辑
    print("脚本直接运行,未启动Bokeh服务")

如果担心自定义参数中包含serve导致误判,可以进一步校验参数顺序,比如判断sys.argv[1]是否为serve,或者结合脚本路径的位置做更严谨的判断。

可行方案2:检查Bokeh文档的session_context属性

通过bokeh serve运行时,curdoc()返回的文档会绑定有效的session_context对象;而直接调用curdoc()时,该属性为None,这是更可靠的判断方式:

from bokeh.plotting import curdoc

doc = curdoc()
if doc.session_context is not None:
    # 当前处于bokeh serve运行模式
    print("通过bokeh serve启动脚本")
else:
    # 当前为直接运行模式
    print("脚本直接运行")

内容的提问来源于stack exchange,提问作者vicmortelmans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:09:24