操作系统错误:[Errno 99] 无法分配请求的地址。

29

我试图在 CentOS 7 上运行 jupyter notebook。但是它返回以下错误:

OSError: [Errno 99] Cannot assign requested address

并且堆栈跟踪:

[user@desktop ~]$ jupyter notebook
Traceback (most recent call last):
  File "/home/use/anaconda3/bin/jupyter-notebook", line 6, in <module>
    sys.exit(notebook.notebookapp.main())
  File "/home/user/anaconda3/lib/python3.6/site-packages/jupyter_core/application.py", line 267, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/home/user/anaconda3/lib/python3.6/site-packages/traitlets/config/application.py", line 657, in launch_instance
    app.initialize(argv)
  File "<decorator-gen-7>", line 2, in initialize
  File "/home/user/anaconda3/lib/python3.6/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/home/user/anaconda3/lib/python3.6/site-packages/notebook/notebookapp.py", line 1296, in initialize
    self.init_webapp()
  File "/home/user/anaconda3/lib/python3.6/site-packages/notebook/notebookapp.py", line 1120, in init_webapp
    self.http_server.listen(port, self.ip)
  File "/home/user/anaconda3/lib/python3.6/site-packages/tornado/tcpserver.py", line 142, in listen
    sockets = bind_sockets(port, address=address)
  File "/home/user/anaconda3/lib/python3.6/site-packages/tornado/netutil.py", line 197, in bind_sockets
    sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address

1
jupyter notebook --ip=127.0.0.1 --port=8888 对我很有帮助。错误可能是因为先前尝试分配的默认IP/端口已被占用所致。 - Zahra
4个回答

39
jupyter notebook --ip=127.0.0.1 --port=8888

我只需要简单地设置 IP/端口参数即可。问题很可能是由于先前尝试分配的默认 IP/端口已经被占用导致的!


6
在一台远程的虚拟机中,我通过以下方式解决了这个问题:
$ jupyter-notebook --ip=0.0.0.0 --port=8888
...
    
    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://0.0.0.0:8888/?token=1234567890abcdefghijklmnopqrstuvwxyz  (the token is for demo)
    
...

注意:不要分配特定的IP地址
然后,我可以通过以下方式连接到Jupyter Notebook:
http://your_vm_ip:8888/?token=1234567890abcdefghijklmnopqrstuvwxyz

(将0.0.0.0替换为your_vm_ip)

输入图片说明


1
这里有一个永久的解决方案。
  1. 为Jupyter创建配置文件,在终端输入:jupyter notebook --generate-config
  2. 上述命令将在/home/USER/.jupyter/jupyter_notebook_config.py中创建一个文件
  3. 打开文件jupyter_notebook_config.py并编辑变量c.NotebookApp.ip,如下所示:
    # c.NotebookApp.ip = 'localhost'
    c.NotebookApp.ip = '127.0.0.1'
  4. 在终端输入:jupyter notebook
备注:有时需要先使用chmod授予权限,该文件。

0
如果您已经尝试了几个端口(使用--port XXXX),但都无法工作:
请检查/etc/hosts/中的localhost条目是否设置为127.0.0.1以外的其他内容。

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