最简单且相对鲁棒的方法是使用 sys
模块来检查 ‘ipykernel’ 是否在已加载的模块中。这个方法简单、直接,且适用于大多数情况。以下是这种方法的实现:
import sys
def is_in_notebook():
return 'ipykernel' in sys.modules
这个方法的优点包括:
-
简单:只需一行代码就能实现检测。
-
鲁棒:不依赖于特定的环境变量或函数,这些在不同的 Jupyter 环境中可能会有变化。
-
通用:适用于 Jupyter Notebook 和 Jupyter Lab。
-
快速:检查
sys.modules
是一个很快的操作。 -
不依赖于 IPython:即使在没有导入 IPython 的情况下也能工作。
-
低风险:不会引发异常,因此不需要 try-except 块。
import sys
def is_in_notebook():
return 'ipykernel' in sys.modules
if is_in_notebook():
print("Running in a Jupyter environment")
else:
print("Not running in a Jupyter environment")
这个方法虽然简单,但在绝大多数情况下都能正确识别 Jupyter 环境。它的主要局限性是无法区分是在 Jupyter Notebook 还是 Jupyter Lab 中运行,但对于大多数应用来说,这种区分通常不是必需的。
靠。