【问题标题】:OSError: [Errno 99] Cannot assign requested addressOSError: [Errno 99] 无法分配请求的地址
【发布时间】:2023-03-11 18:36:01
【问题描述】:

尝试在 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

【问题讨论】:

  • jupyter notebook --ip=127.0.0.1 --port=8888 让事情顺利进行。该错误可能是因为它之前尝试分配的默认 IP/端口已被占用。

标签: centos anaconda jupyter-notebook jupyter


【解决方案1】:
jupyter notebook --ip=127.0.0.1 --port=8888

我必须简单地设置 ip/port 参数。该问题可能是因为它之前尝试分配的默认 ip/port 已被占用!

【讨论】:

    【解决方案2】:

    在远程虚拟机中,我解决了这个问题

    $ 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

    【讨论】:

      【解决方案3】:

      这是一个永久的解决方案。

      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授予权限,文件

      【讨论】:

        【解决方案4】:

        如果您已经尝试了多个端口(使用 --port XXXX),但都没有工作:

        检查/etc/hosts/ 中的localhost 条目未设置为127.0.0.1 以外的其他值。

        【讨论】:

          猜你喜欢
          • 2018-04-27
          • 2021-05-26
          • 2020-09-04
          • 1970-01-01
          • 2017-09-13
          • 2020-06-06
          • 2017-05-08
          • 2018-01-02
          • 2022-11-09
          相关资源
          最近更新 更多