如何在Windows中更改Jupyter Notebook使用的默认浏览器?

84
我在一台没有管理员权限的Windows机器上,想要在Chrome上运行Jupyter,而默认浏览器是另一个。
我已经在本地安装了Anaconda发行版,我首选启动Jupyter的方法是通过Anaconda Navigator,但也许我需要做些其他操作。因为这是一个本地安装,命令行jupyter notebook没有任何结果。
当我将默认浏览器中的URL地址(类似http://localhost:8892/notebooks/Home/Exercices/Testing1.ipynb)粘贴到Chrome页面时,它要求我输入密码或令牌。我没有密码,也不知道什么是令牌。
有没有办法更改Anaconda Navigator的浏览器?或者我该如何使用Chrome启动Jupyter?
28个回答

87
感谢@Darthbith和这篇帖子如何在Linux中更改ipython/jupyter笔记本的默认浏览器,我终于弄明白了:
步骤1:从开始菜单打开Anaconda Prompt并输入
# for old notebook and JupyterLab < 3.0, or
jupyter notebook --generate-config
# for new nbclassic and JupyterLab >= 3.0
jupyter server --generate-config

这将生成文件~/.jupyter/jupyter_notebook_config.py(或jupyter_server_config.py用于nbclassic/new JupyterLab)。
第二步:编辑此文件并更改以下行(chrome也是本地安装)。
# for old notebook and JupyterLab < 3.0
c.NotebookApp.browser = u'C:/Home/AppData/Local/Google/Chrome/Application/chrome.exe %s'
# OR for new nbclassic and JupyterLab >= 3.0
c.ServerApp.browser = u'C:/Home/AppData/Local/Google/Chrome/Application/chrome.exe %s'

5
在这里 %s 是用来做什么的?在Linux上事情要简单得多。 - nad_rom
3
只是出于好奇,jupyter_notebook_config.py是一个Python文件,然而变量c从未被定义,却仍然被使用。这怎么可能? - John Wang
42
请提醒那些在谷歌搜索这篇文章的朋友,如果路径中有空格,请引用您的浏览器命令以使其正常工作。例如,c.NotebookApp.browser = '"C:\\Program Files\\Mozilla Firefox\\firefox.exe" %s' - John Wang
8
别忘了在开头删除#符号。我忘记了:D - Pritesh Gohil
1
自2021年3月17日起,由于chrome.exe不再安装在此位置C:/Home/AppData/Local/Google/Chrome/Application/chrome.exe,因此此方法已不再有效。相反,它现在安装在这里:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Firefox.exe。但是,如果您将c.NotebookApp.browser = u'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Firefox.exe %s'放入配置文件中,它将无法正常工作。(这里我想让它成为Firefox,但对于Google也是如此。) - G.T.
显示剩余3条评论

60
在Windows中,在cmd/ Anaconda提示符中输入:
jupyter notebook --generate-config

生成的jupyter_notebook_config.py文件位于"C:\Users\YourName\.jupyter\"文件夹中。

使用文本编辑器打开它,将#c.NotebookApp.browser = ''更改为

import webbrowser
webbrowser.register('chrome', None, webbrowser.GenericBrowser(u'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'))
c.NotebookApp.browser = 'chrome'

保存文件。

现在执行jupyter-notebook命令,将使用默认浏览器。


这是在Windows中绝对有效的内容。以我为例,看看这三行:import webbrowser webbrowser.register('Mozila', None, webbrowser.GenericBrowser(u'C:\Program Files\Mozilla Firefox\Firefox.exe')) c.NotebookApp.browser ='Mozila' 这里我想将mozila设置为我的Jupyter默认浏览器。 - G.T.
2
谢谢,这是唯一在非管理员帐户上适用的解决方案。供参考,我使用了 MS Edge Chromium: import webbrowser webbrowser.register('edge', None, webbrowser.GenericBrowser(u'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe')) c.NotebookApp.browser = 'edge' - slew123
我尝试了社区中发布的所有其他方法,但都没有起作用。像u'+path+s%'这样的东西对我来说从来没有起过作用。但是你的代码非常好用!谢谢!@Abhirup Das - Cloudy_Green
我也尝试了其他的解决方案,但只有你的对我有效。非常感谢! - Marc B. Hankin
我使用了 c.ServerApp.browser,它适用于 JupyterLab 3.3.2,但不适用于 Jupyter Notebook 6.4.8。但现在这样也没关系。 - David H. J.
如果您在Chrome中使用多个配置文件,可以使用以下代码进行选择: webbrowser.register('chrome', None, webbrowser.get("C:/Program Files/Google/Chrome/Application/chrome.exe --profile-directory=\"Profile 2\" %s")) - Glenn Sandoval

11

我不知道Windows的详细信息,但这是如何在Mac上设置默认浏览器的方法:

jupyter notebook --generate-config

这将在 ~/.jupyter 中创建一个名为 jupyter_notebook_config.py 的文件。编辑以下行:

#c.NotebookApp.browser = ''

在 Mac 上,我将其设置为:

c.NotebookApp.browser = u'open -a /Applications/Gooogle\ Chrome.app %s'

你只需要弄清楚如何将它指向Windows上的Chrome。


哦,好答案!我忘记了配置文件。我也不确定它在Windows上如何工作。请注意,在Windows上应从Anaconda提示符中运行“jupyter notebook --generate-config”命令。 - darthbith
7
请稍作修改来设置 Mac: c.NotebookApp.browser = u'open -a /Applications/Google\ Chrome.app %s' (该代码为 Jupyter Notebook 的浏览器设置,将其更改为在 Mac 上使用 Google Chrome 打开链接。) - Hendra Kusumah
请注意Gooogle中的三个o,将其更改为Google;另外对于Jupyter Lab,它将是c.ServerApp.browser = u'open -a /Applications/Google\ Chrome.app %s' - omsrisagar

10
据我所知,无法更改默认打开的浏览器。但是,您可以通过从“开始”菜单中打开Anaconda提示符并键入以下内容来查找笔记本电脑服务器的令牌:
jupyter notebook list

这将为您提供一个带有令牌的URL,您可以将其复制/粘贴到任何其他浏览器中。 list 命令的输出如下所示:

Currently running servers:
http://localhost:8888/?token=41429d3dcf554d0dde69498aac0950654a590664ba02b3cd :: /path/to/home/folder

所以你可以在浏览器中输入http://localhost:8888,然后将令牌复制/粘贴到字段中,或者直接将带有令牌的整个URL复制/粘贴。


1
谢谢,这让我能够看到正在运行的服务器并在另一个浏览器中打开它们。因为我看到了5个服务器,我想知道我应该如何停止它们。 - Marco
2
关闭服务器并不是那么显而易见的。这里有一个问题 https://dev59.com/qmkw5IYBdhLWcg3wEmWb 和一个请求 https://github.com/jupyter/notebook/pull/3004。 - Marco

9

您不需要更改jupyter_notebook_config文件中的任何内容。检查您的默认Web浏览器(如果是Chrome),或者重置并再次选择Chrome作为默认浏览器。这对我有用。


这对我在 Windows 10 中也奏效了。您打开您首选的浏览器,它会提示您将其设置为默认浏览器。一旦您将其设置为默认浏览器,Anaconda Navigator 将自动在该浏览器中打开。在 Windows 中设置默认浏览器的另一种方法是转到“设置 > 应用 > 默认应用程序 > Web 浏览器 > 点击选择首选浏览器”。 - akarahman
很好的替代配置示例。 - carverd

8
以下内容对我也适用。我给它一个完整的chrome路径,最后加上%s
jupyter notebook --browser='C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s'

如果Chrome在PATH环境变量中,以下方法也可能有效。
jupyter notebook --browser=chrome

谢谢,这在Linux上可行,路径末尾的%s是必需的,否则会出现以下错误: “找不到Web浏览器:无法定位可运行的浏览器。” - t-bltg

7
我想提供更多的关于在jupyter_notebook_config.py文件中放置什么的信息,这些信息没有包含在其他答案中。jupyter使用python的webrowser模块通过将c.NotebookApp.browser的值传递给webbrowser.get(using=None)函数来启动浏览器。如果未指定值,函数会选择用户的默认浏览器。如果您在此处指定一个值,则可以根据值是否以%s字符结尾来解释该值的两种方式之一。

如果该字符串不包含%s字符,它将被解释为浏览器名称,并且该模块将检查是否注册了该名称的浏览器(请参阅Python文档以获取默认情况下注册哪些浏览器)。这就是Abhirup Das的答案有效的原因,首先导入了webbrowser模块

import webbrowser

然后使用该模块注册chrome浏览器。

webbrowser.register('chrome', None, webbrowser.GenericBrowser(u'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'))

最后,Jupyter服务器将浏览器名称设置为:

c.NotebookApp.browser = 'chrome'

此浏览器注册不会持久保存,因此每次启动服务器时都必须重复此过程。

或者,如果字符串包含字符%s,则将其解释为字面浏览器命令。由于这个问题是关于如何在Windows上运行浏览器的,浏览器命令可能包含反斜杠。在Python字符串文字中,反斜杠用于转义任何具有特殊含义的字符(例如,在字符串文字中包括引号或双引号)。浏览器命令中的任何反斜杠都需要被转义或替换。最简单的方法是将命令中的反斜杠替换为正斜杠,例如:

'C:/Home/AppData/Local/Google/Chrome/Application/chrome.exe %s'

而非

'C:\Home\AppData\Local\Google\Chrome\Application\chrome.exe %s'

我想,用替换反斜杠为正斜杠的方式可能是唯一可行的方法,因为我无法使用Unicode/原始字符串命令或需要用额外的反斜杠转义每个反斜杠的命令。我验证了我尝试的所有字符串在Python中都可以工作,所以确保的唯一方法就是查看Jupyter源代码。
总之,由于使用该模块注册浏览器不会持久化,如果您的浏览器不是默认已注册的,则最好使用带有替换反斜杠为正斜杠的文字浏览器命令。

该主题得到了出色而全面的解释。 - G.T.
如果您想将一些选项传递给命令,则末尾的"%s"部分是必需的。 我想以全屏模式启动我的非默认浏览器(chromium)。c.ServerApp.browser = '/usr/bin/chromium-browser --start-fullscreen %s' - shcrela

5
不必在命令窗口中输入命令,使用Windows文件资源管理器即可更简单地完成操作!只需按照以下路径导航到 C:\Users\**YourUser**\AppData\Roaming\jupyter\runtime\

包含html文件的路径

在此路径下,除了其他文件外,您将看到相应的 jupyter 作业 .html 文件。您可以右键单击任何 .html 文件,选择“打开方式”,然后选择其他应用程序(如下图所示 - 抱歉我的默认语言是西班牙语)。

选择可能打开文件的应用程序列表

从这里,您可以选择最适合您的浏览器。在我这里,我正在使用 Firefox,但您可以选择 Chrome 或其他浏览器(如下图所示)。请务必勾选 “始终使用此应用程序打开 .html 文件” 复选框,将 Chrome 设置为默认浏览器。

选择最合适的浏览器并将其设置为默认

从此,Jupyter Notebooks 将始终在 Chrome 中打开。希望能对您有所帮助!

5

对于Linux用户:

首先使用以下命令生成配置文件: jupyter notebook --generate-config

然后打开生成的文件,查找 #c.NotebookApp.browser = ''

将其编辑为: c.NotebookApp.browser = '/bin/brave %s'

用您的浏览器可执行文件位置替换 /bin/brave


在我的情况下,它是 c.NotebookApp.browser = '/bin/brave-browser %s'。 - Coder Dev

5
在Mac上,可以按以下步骤进行操作:

1)从你的环境中生成一个配置文件:

jupyter notebook --generate-config

这将把 jupyter_notebook_config.py 放到 ~/.jupyter 中。

2) 修改 jupyter_notebook_config.py 中的以下一行:

c.NotebookApp.browser = 'open -a /Applications/Google\ Chrome.app %s'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接