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

Ubuntu22.04下运行Taipy2.0代码出现Empty session id警告如何解决?

解决Taipy 2.0中"Empty session id, using global scope instead"警告的方法

问题场景

在Ubuntu 22.04系统上使用Python 3.10和Taipy 2.0运行以下代码时:

from taipy.gui import Gui
from math import cos, exp 

page = """
#This is **Taipy** GUI 

A value: <|{decay}|>.

A slider: <br/>
<|{decay}|slider|>

My chart: 
<|{data}|chart|>
"""

def compute_data(decay):
    return [cos(i/16) * exp(-i*decay/6000) for i in range(720)]

def on_change(state, var_name, var_value):
    if var_name == 'decay':
        state.data = compute_data(var_value)

decay = 10
data = compute_data(decay) 

Gui(page=page).run(title='Taipy Demo GUI', dark_mode=False)

出现了如下警告:

UserWarning: Empty session id, using global scope instead
  warnings.warn("Empty session id, using global scope instead")

解决方案

这个警告源于代码使用全局变量管理UI状态,Taipy在单会话模式下会自动 fallback 到全局作用域。以下是两种解决方式:

方式1:使用Taipy状态管理最佳实践(推荐)

通过on_init函数初始化会话级变量,替代全局变量,确保每个会话拥有独立的状态空间:

from taipy.gui import Gui
from math import cos, exp 

page = """
#This is **Taipy** GUI 

A value: <|{decay}|>.

A slider: <br/>
<|{decay}|slider|>

My chart: 
<|{data}|chart|>
"""

def compute_data(decay):
    return [cos(i/16) * exp(-i*decay/6000) for i in range(720)]

def on_init(state):
    # 在会话初始化时为当前会话设置专属变量
    state.decay = 10
    state.data = compute_data(state.decay)

def on_change(state, var_name, var_value):
    if var_name == 'decay':
        state.data = compute_data(var_value)

Gui(page=page).run(title='Taipy Demo GUI', dark_mode=False)

方式2:直接禁用警告(不推荐)

如果你确认全局作用域的使用完全符合需求,可以在代码开头添加过滤规则屏蔽该提示:

import warnings
# 过滤指定警告信息
warnings.filterwarnings("ignore", message="Empty session id, using global scope instead")

from taipy.gui import Gui
from math import cos, exp 

# 后续代码保持不变
page = """
#This is **Taipy** GUI 

A value: <|{decay}|>.

A slider: <br/>
<|{decay}|slider|>

My chart: 
<|{data}|chart|>
"""

def compute_data(decay):
    return [cos(i/16) * exp(-i*decay/6000) for i in range(720)]

def on_change(state, var_name, var_value):
    if var_name == 'decay':
        state.data = compute_data(var_value)

decay = 10
data = compute_data(decay) 

Gui(page=page).run(title='Taipy Demo GUI', dark_mode=False)

注意:方式2仅适合单用户场景,多用户环境下全局变量会导致状态混乱,推荐始终使用方式1的状态管理模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:24:56