在WSL2上连接Jupyter Notebook速度慢



我在WSL2实例中运行Jupyter notebook时遇到了一个奇怪的问题。每次我启动一个新的笔记本电脑,我第一次连接到localhost:8888(或localhost:XXXX对于任何其他端口号)需要很长时间才能连接,比如5-10分钟。然而,一旦建立了到该端口的连接,所有后续连接都以正常速度进行。据我所知,延迟并不是特别发生在Jupyter服务器中,因为服务器输出在等待期间没有显示任何GET请求:

> jupyter notebook .
[I 08:29:21.282 NotebookApp] Authentication of /metrics is OFF, since other authentication is disabled.
[W 08:29:21.729 NotebookApp] All authentication is disabled.  Anyone who can connect to this server will be able to run code.
[I 08:29:21.732 NotebookApp] Serving notebooks from local directory: /home/peter/jade_poplar/code/python
[I 08:29:21.732 NotebookApp] Jupyter Notebook 6.4.0 is running at:
[I 08:29:21.732 NotebookApp] http://localhost:8888/
[I 08:29:21.732 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
...
5-10 MINUTES ELAPSE
...
[I 08:38:12.718 NotebookApp] 302 GET / (127.0.0.1) 2.110000ms

然而,这个问题似乎只局限于Jupyter:如果我只是用nc -l 8888监听端口,然后将浏览器指向localhost:8888,GET请求立即显示。

我已经尝试随机修复我在SE上发现的其他问题,例如。这一个,但没有用。任何建议,甚至建议,从哪里开始寻找,将非常感激!这快把我逼疯了虽然我在等待笔记本加载的时候下了很多棋:D

旧答案

我找到了两种方法来避开"等待时间"。在我的系统中

  1. 在控制台输出在Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
  2. 挂起后按一次Ctrl+C
  3. 设置DISPLAY环境变量为零:DISPLAY= jupyter notebook .。显然,同样的技巧也适用于pip。

更新1

经过一些调试后,我发现,--no-browser选项也可以做到这一点:

jupyter notebook --no-browser .

jupyter-notebook默认在浏览器中打开localhost:8888。我假设WSL2在打开默认浏览器时出现问题,因此会超时。


更新2

为了证实我的猜测,从UPDATE 1,我将WSL设置为能够打开浏览器窗口:
  • 在WSL (ubuntu)安装firfox:

    sudo apt install firefox
    
  • 在WSL2上设置X11转发

使用此设置jupyter-notebook正常启动,localhost:8888在firefox中打开。

相关内容

  • 没有找到相关文章

最新更新