Windows下VS Code中Jupyter单元格报错_set_css_in_cell_output()参数问题
问题原因与解决方法
问题根源
这个错误是VS Code Jupyter扩展与独立Python虚拟环境中Jupyter相关依赖的版本兼容性问题,具体细节:
_set_css_in_cell_output是Google Earth Engine(GEE)或Jupyter相关库用于设置单元格输出样式的回调函数,VS Code的Jupyter扩展调用该函数时会自动传入一个参数,但该函数的定义未设置参数接收,从而触发类型错误。- 你同事的Conda环境中,Jupyter相关依赖(如
ipython、jupyter_client、ipykernel)或GEE包的版本刚好适配VS Code扩展的调用逻辑;而你的独立Python虚拟环境里,这些包的版本和扩展不匹配,导致回调调用时参数不兼容。
解决步骤
对齐依赖版本
让同事导出他Conda环境的依赖列表(执行pip list或conda list),找到ipython、jupyter_client、ipykernel、earthengine-api这几个包的版本号,在你的虚拟环境里安装对应版本:pip install ipython==[对应版本号] jupyter_client==[对应版本号] ipykernel==[对应版本号] earthengine-api==[对应版本号]更新VS Code Jupyter扩展
打开VS Code的扩展面板,找到Jupyter扩展,点击更新到最新版本——新版本通常会修复这类跨环境的兼容性问题。手动禁用冲突回调
如果上述方法无效,可以在笔记本的初始化代码中,取消注册这个冲突的回调函数。找到GEE初始化的代码段,添加以下代码:from IPython import get_ipython ip = get_ipython() # 遍历已注册的pre_run_cell回调,找到目标函数并取消注册 for callback in ip.events.callbacks['pre_run_cell']: if callback.__name__ == '_set_css_in_cell_output': ip.events.unregister('pre_run_cell', callback) break
内容的提问来源于stack exchange,提问作者bona_rivers
相关产品推荐
相关产品推荐

