我正在尝试设置一个Jupyterhub实例,以便在Google计算引擎上为IPython笔记本提供服务。但是,当运行jupyterhub时,我遇到了一个关于套接字的错误:
[E 2015-08-31 10:27:55.617 JupyterHub app:1097]
Traceback (most recent call last):
File "/home/esten/anaconda3/envs/py3k/lib/python3.3/site- packages/jupyterhub/app.py", line 1095, in launch_instance_async
yield self.start()
File "/home/esten/anaconda3/envs/py3k/lib/python3.3/site-packages/jupyterhub/app.py", line 1027, in start
self.http_server.listen(self.hub_port, address=self.hub_ip)
File "/home/esten/anaconda3/envs/py3k/lib/python3.3/site-packages/tornado/tcpserver.py", line 126, in listen
sockets = bind_sockets(port, address=address)
File "/home/esten/anaconda3/envs/py3k/lib/python3.3/site-packages/tornado/netutil.py", line 187, in bind_sockets
sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address
配置文件分配的地址/端口是localhost/8081,像下面这样绑定套接字效果很好
import socket
s = socket.socket()
s.bind(("localhost", 8081))
jupyterhub是否在其他地方查找信息,或者通过我自己的代码绑定套接字时是否做了不同的事情?
这似乎是GCE不支持ipv6的问题。我发现这个链接解释了启用ipv6解决了另一台机器上的问题。
使用——ip运行解决了这个问题:
jupyter notebook --ip="*"