在本地主机上启动 Jupyter 笔记本会导致"[Errno 49] 无法分配请求的地址",但是 ip=127.0.0.1 有效



当尝试启动Jupyter笔记本时,我收到以下错误

$ Jupyter Notebook
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/jupyter-notebook", line 11, in <module>
sys.exit(main())
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/jupyter_core/application.py", line 268, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/traitlets/config/application.py", line 663, in launch_instance
app.initialize(argv)
File "</Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/decorator.py:decorator-gen-7>", line 2, in initialize
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/traitlets/config/application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/notebook/notebookapp.py", line 1720, in initialize
self.init_webapp()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/notebook/notebookapp.py", line 1482, in init_webapp
self.http_server.listen(port, self.ip)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tornado/tcpserver.py", line 151, in listen
sockets = bind_sockets(port, address=address)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tornado/netutil.py", line 174, in bind_sockets
sock.bind(sockaddr)
OSError: [Errno 49] Can't assign requested address

然而,当我指定127.0.0.1(即不是"localhost"(的ip地址Jupyter Notebook --ip=127.0.0.1时,它可以很好地工作。

此外,当我ping localhost时,它会返回本地主机实际上是127.0.0.1。

$ ping localhost
PING localhost.localdomain (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.034 ms

我检查了etc/hosts和private/etc/hosts,都没有指定localhost(或任何相关内容(。

当我在PyCharm中运行Jupyter Notebooks时,我正试图解决这个问题,但你不能创建一个简单的快捷方式来在127.0.0.1副"localhost"上运行。(我知道没有简单的快捷方式,如果我错了,请纠正我(我可以在Pycharm中的127.0.0.1上启动,但它需要多个步骤,而且很麻烦。我只想通过它的默认配置"localhost"来实现这一点。

答案记入@jackw11111

为您的jupyter笔记本生成配置文件

$ jupyter notebook --generate-config

用你最喜欢的编辑器跳转到这个新的配置文件

$ nano ~/.jupyter/jupyter_notebook_config.py

在文件中添加以下行,使其成为在上侦听的默认服务器

c.NotebookApp.ip = '127.0.0.1'

最新更新