Python能判断它是否在JupyterLab和Jupyter笔记本中执行吗?

2024-06-07 16:14:38 发布

您现在位置:Python中文网/ 问答频道 /正文

当从笔记本中调用Python代码时,是否可以确定笔记本是旧笔记本还是JupyterLab

问题背后的背景是,我想在笔记本中内联显示一些支持Javascript的内容。对于普通笔记本,我有各种各样的好东西(require.js、执行脚本的能力、访问Jupyter.notebook.kernel.execute等)。在JupyterLab,为了安全起见,所有这些都被移除了

我并不质疑JupyterLab中的更改,但我确实需要确定这些“Javascript好东西”是否可用。如果没有,我将编写一个临时html页面并打开一个指向它的webbrowser——虽然不太好,但在我决定编写一个lab扩展并且用户决定安装它之前,它会一直运行

那么,我如何判断我是在普通笔记本电脑中运行还是在实验室中运行?

我在使用潜在解决方案时遇到的挑战是:

  1. 我在Javascript中使用display(Javascript(...))执行的任何操作都会在Python代码返回后异步运行。所以我不能简单地写if call_javascript() == 'notebook'之类的东西
  2. 如果我考虑Javascript的异步特性并传递回调,那么这只适用于普通笔记本。JupyterLab没有办法给我回电话

Tags: 代码脚本内容executehtmljs笔记本jupyter

热门问题