你好
尝试打开笔记本时,出现套接字错误 99“无法分配请求的地址”。 这是在系统更新后发生的,虽然 Ipython 仅从 2.1.0-62 更新到 2.1.0-63(SuSE 包),但我检查了以下内容但没有任何成功:
所以我不知道我还能做什么。 任何关于我还能做什么的指针表示赞赏。
启动消息是
tmp/> ipython notebook --init --log-level=50 --ip='localhost' --port=49151 [15:46:39]
回溯(最近一次调用最后一次):
文件“/usr/bin/ipython”,第 5 行,在
start_ipython()
文件“/usr/lib/python2.7/site-packages/IPython/初始化的.py”,线120,在start_ipython
返回launch_new_instance(argv=argv, _kwargs)文件“/usr/lib/python2.7/site-packages/IPython/config/application.py”,第563行,在launch_instanceapp.initialize(argv)文件 ”
错误:[Errno 99] 无法分配请求的地址
我的系统配置是
{'commit_hash':'681fd77',
'commit_source': '安装',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/lib/python2.7/site-packages/IPython',
'ipython_version': '2.1.0',
'os_name': 'posix',
'平台':'Linux-3.11.10-17-default-x86_64-with-SuSE-13.1-x86_64',
'sys_executable': '/usr/bin/python',
'sys_platform': 'linux2',
'sys_version': '2.7.6(默认,2013 年 11 月 21 日,15:55:38)[GCC]'}
我的龙卷风版本是
名称:python-tornado/版本:3.2.1-2.1/Arch:x86_64
如果你尝试--ip=127.0.0.1
呢?
你好
那行得通(应该已经想到了)。 我把它放到我的 ipython_notebook_config.py 中。 我想知道为什么行为改变了......
所以从我的角度来看,我可以关闭这个问题。 只有当人们可以将错误消息更改为指向解决方案的有意义的内容时,我才会保持这个问题的开放。 但也许这个问题太具体了......
非常感谢您的快速答复!
复制 #6191 中的解释:
默认情况下,IPython 在 localhost 上侦听。 127.0.0.1 应该表现相同,并且几乎在所有情况下都是如此。 一些可以以不同方式处理的情况包括本地代理和/或防火墙(通常是由于配置疏忽,而不是故意的行为差异)。 我们已经发现 localhost 有效而 127 无效的情况,反之亦然,因此默认值没有明确正确的答案。
你有防火墙和/或代理配置吗? 如果是这样,您是否控制其配置? 我会将这种行为描述为您的网络设置中的一个错误,但它可能不是您有权修复的错误。
谢谢,指定 127.0.0.1 也为我解决了套接字错误
如果你在云服务器中使用它,你可以使用--ip=0.0.0.0
。
感谢您继续关注这个问题,我正在云服务器上设置笔记本服务器。 并将侦听 ip 指定为“0.0.0.0”确实解决了同样的问题。
谢谢,我遇到了同样的问题:)
谢谢它解决了它!
对于来自搜索结果的人:检查您的/etc/hosts
是否有拼写错误和 ipv6 配置。 localhost
应该只指向 ipv4 环回 ( 127.0.0.1
),而不是ipv6 ( ::1
)。 这可以破坏其他东西,不仅仅是 jupyter。
例如,这是错误的:
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
还行吧:
::1 localhost6 localhost6.localdomain6
https://github.com/codenvy/codenvy/issues/2427#issuecomment -397347888
https://bugzilla.redhat.com/show_bug.cgi?id=211800#c4
@mlazowik 非常感谢! 这解决了我的问题 - 我想知道有多少人有同样的问题,但选择了 127.0.0.1 解决方案。 这是正确的解决方案(确保主机名查找表正确)。 在我的实例(Arch Linux)中,我的/etc/hosts
被“运送”如下:
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
我更正了以下内容:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
如果你在云服务器中使用它,你可以使用
--ip=0.0.0.0
。
对我来说(在 mac 上)只有 --ip=0.0.0.0 可以在本地运行的 docker 上工作。
就我而言,这是由于 IPv6 中重复的 ::1 环回地址的 /etc/hosts 所致。
注释掉第二个环回地址::1后,错误消失。
@mlazowik我在使用相同的最终解决方案时遇到了同样的问题,但发现man /etc/hosts
在他们的示例中有这个很有趣,这让我无法弄清楚我的问题(因为推定的权威推荐了你所说的有问题):
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 localhost
127.0.1.1 thishost.mydomain.org thishost
[...]
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
我从::1
条目中删除了localhost
(保留其他两个),一切都很好。 我还假设ip6
是一个ipv6
关键字,但也许ip6-foo
和foo6
都很好(例如,只是某种形式的名称修改与ipv4
等价物)?
最有用的评论
如果你尝试
--ip=127.0.0.1
呢?