有没有办法检测笔记本在voila,jupyter或jupyterlab中显示?

问题描述

如果笔记本是通过voila,jupyter或jupyterLab启动的,我使用的xarray_leaflet库的行为会有所不同。

有没有办法以编程方式检测到它?

解决方法

在 voila > .2 的版本中,运行环境中有一堆环境变量(例如 'QUERY_STRING','SERVER_SOFTWARE','SERVER_PROTOCOL','SERVER_PORT','PATH_INFO','SERVER_NAME','SCRIPT_NAME'),因此检测您是否在 voila 中运行就像检查是否有任何一个一样简单那些存在,甚至更好:

import os
running_in_voila = os.environ.get('SERVER_SOFTWARE','jupyter').startswith('voila')