首页 > 解决方案 > 在 Jupyter 中,你如何判断你在哪个浏览器中?

问题描述

在我的 Jupyter 笔记本中,我需要知道我是在 Chrome 还是 Firefox 中运行,因为在 Altair 中保存图形的代码因浏览器而异(https://altair-viz.github.io/user_guide/saving_charts.html)。

我怎样才能做到这一点?

标签: jupyter-notebookjupyteraltair

解决方案


Jupyter 内核(即 Python 后端)没有关于连接到它的前端的直接信息。但是您可以使用系统工具来尝试推断正在运行的浏览器进程。例如,psutil模块允许您列出正在运行的进程。我目前打开了 Chrome 和 Safari 浏览器,我得到了以下结果:

>>> import psutil
>>> 'Google Chrome' in (p.name() for p in psutil.process_iter())            
True
>>> 'Firefox' in (p.name() for p in psutil.process_iter())                  
False
>>> 'Safari' in (p.name() for p in psutil.process_iter())                   
True

一些警告:

  • 进程名称可能因操作系统而异:如果跨平台一致地工作很重要,我会检查一下。
  • 这并不能告诉您用户是否正在使用这个特定的前端来查看 Jupyter 笔记本,而是告诉您该名称的进程是否正在运行。
  • 要保存 altair 图表,请注意仅浏览器是不够的:您还需要用户为 Chrome 安装 chromedriver,或为 Firefox 安装 geckodriver。检测是否安装了这些驱动程序可能比检测当前运行的浏览器更好。有关详细信息,请参阅保存图表

推荐阅读