为啥当 Jupyter 笔记本处于活动状态时我无法访问我的 localhost:8888 地址?

Posted

技术标签:

【中文标题】为啥当 Jupyter 笔记本处于活动状态时我无法访问我的 localhost:8888 地址?【英文标题】:Why I cannot access my localhost:8888 address when a Jupyter notebook is active?为什么当 Jupyter 笔记本处于活动状态时我无法访问我的 localhost:8888 地址? 【发布时间】:2019-04-01 04:01:10 【问题描述】:

我经常使用 phpMyAdmin(通过 MAMP,因为我是 Mac OSX 用户)来访问我在本地主机上的一些数据库。在我开始使用 Jupyter notebook(Anaconda 发行版)之前,我从来没有遇到过问题。

问题是,如果我有一个笔记本处于活动状态,那么我的浏览器无法打开常规 url 'http://localhost:8888/phpMyAdmin' 并显示 404 消息(带有 jupyter 徽标)

重新访问 phpMyAdmin 的唯一方法是杀死调用 jupyter 进程的终端窗口,然后 localhost url 再次工作。

奇怪的是,当 Jupyter 处于活动状态时,mysqlWorkBench 确实可以工作,我将其用作临时解决方法,但我想了解 Jupyter 和 phpmyadmin 之间冲突的来源,因为我更喜欢在 phpmyadmin 中工作(旧版和文档原因),而无需关闭我的 jupyter 笔记本。

作为附加信息,通过 pymysql 包从 jupyter 访问数据库绝对没有问题。

谢谢!

--编辑--

感谢 Samuli 的回答,我明白了这个问题。 anaconda 和 Mamp 都默认配置了相同的端口,8888。WorkBench 更智能,如果使用 8888,它将使用不同的数字。

由于我仍然想从 anaconda 启动 Jupyter,而不是使用解决方案提出的终端行(这也有效),我已将 MAMP 重新配置为使用 Apache 端口 8890(MAMP->Preferences->Ports)

也许其他选项是重新配置 Jupyter 以默认打开 8888 以外的其他端口。例如,在终端中:

:~jupyter notebook --generate-config :~nano ~/.jupyter/jupyter_notebook_config.py 并更改线路 #c.NotebookApp.port = 8888 到 c.NotebookApp.port = 8887

【问题讨论】:

对您的编辑的一点澄清是,由于 MySQL Workbench 不是通过 Web 浏览器访问的,因此它根本不会绑定到任何端口。它是一个独立的应用程序,不需要端口,并不是它更智能或适应正在使用的8888端口。 【参考方案1】:

问题是 phpMyAdmin 和 Jupyter Notebook 使用相同的端口,即 8888。通过使用以下命令启动 Jupyter Notebook 更改端口,您应该能够毫无问题地使用两者: jupyter notebook --port=8887

【讨论】:

谢谢,萨穆利。我理解了这个问题,并为我的工作流程找到了解决方案。 对此进行一点澄清,phpMyAdmin 本身并不绑定到端口,因为它是通过您的网络服务器访问的,它实际上是与端口的网络服务器绑定。

以上是关于为啥当 Jupyter 笔记本处于活动状态时我无法访问我的 localhost:8888 地址?的主要内容,如果未能解决你的问题,请参考以下文章

当没有类范围处于活动状态时无法访问 self::

当 searchController 处于活动状态时,UIButton 不起作用?

应用程序处于非活动状态时无法接收静默通知 iOS

为啥运行单线程 Java 程序会导致许多内核处于活动状态?

为啥 Facebook Graph API 显示我的帐户处于非活动状态?

Xamarin.iOS 为啥在设备上调试时 HKAnchoredObjectQuery 处于非活动状态然后停用?