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

Python能判断它是否在JupyterLab和Jupyter笔记本中执行吗?,python,jupyter-notebook,jupyter-lab,Python,Jupyter Notebook,Jupyter Lab,当从笔记本中调用Python代码时,是否可以确定笔记本是旧笔记本还是JupyterLab 问题背后的背景是,我想在笔记本中内联显示一些支持Javascript的内容。对于普通笔记本,我有各种各样的好东西(require.js、执行脚本的能力、访问Jupyter.notebook.kernel.execute等)。在JupyterLab,为了安全起见,所有这些都被移除了 我并不质疑JupyterLab中的更改,但我确实需要确定这些“Javascript好东西”是否可用。如果没有,我将编写一个临时h

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

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

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

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

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

  • 我在Javascript中使用
    display(Javascript(…)
    执行的任何操作都会在Python代码返回后异步运行。所以我不能简单地写
    ,如果调用_javascript()=“notebook”
    或其他什么的话
  • 如果我考虑Javascript的异步特性并传递回调,那么这只适用于普通笔记本。JupyterLab没有办法给我回电话

  • 这回答了你的问题吗@特伦顿·麦金尼,那个链接确实试图回答我的问题。不幸的是,答案似乎只适用于IPython的旧版本。