同Python环境下PyCaret的setup函数在Jupyter Lab可用VS Code调试报错
VS Code中PyCaret setup函数触发trio断言错误排查方案
问题重现
- 执行代码:
from pycaret.regression import * # 尝试过带/不带oop写法 from pycaret.datasets import get_data data = get_data('insurance') s = setup(data, target = 'charges', session_id = 123)
- Jupyter Lab可正常运行,VS Code调试时
setup仅显示"Error:",单独执行该代码触发AssertionError,错误溯源指向trio库的断言失败。 - 已尝试操作:升级gradio、httpx、trio;安装
PyCaret[full]完整依赖;确认使用同一Python环境(PyCaret版本3.2.0)。
可行排查方案
1. 禁用PyCaret交互式特性
VS Code调试环境可能与PyCaret的交互式组件(依赖trio/gradio)冲突,在setup中添加参数禁用交互:
s = setup(data, target='charges', session_id=123, html=False, silent=True)
html=False:关闭HTML报告生成,避免启动gradio服务silent=True:静默模式运行,跳过用户确认步骤
2. 配置VS Code调试环境
在.vscode/launch.json中添加环境变量,强制PyCaret以CLI模式运行:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "env": {"PYCARET_CLI_MODE": "1"} } ] }
3. 降级trio到兼容版本
PyCaret 3.2.0对trio版本存在隐性兼容要求,尝试降级至trio 0.22.0:
pip install trio==0.22.0
4. 调整VS Code调试模式
确保VS Code Python插件为最新版,调试时关闭"Jupyter Interactive Window"模式,改用普通终端执行,避免异步上下文冲突。
验证方法
执行任一方案后重新运行代码,若setup正常执行,再逐步移除参数(如取消silent=True),定位具体冲突点。
内容的提问来源于stack exchange,提问作者AldegarRızvan
相关产品推荐
相关产品推荐

