“getaddrinfo失败了”,这是什么意思?

时间:2011-09-07 12:52:37

标签: python bottle

  File "C:\Python27\lib\socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)   gaierror: [Errno 11004]
getaddrinfo failed

从此处启动hello world示例时出现此错误:

http://bottlepy.org/docs/dev/

6 个答案:

答案 0 :(得分:44)

这很可能意味着您传递给run的主机名无法解析。

import socket
socket.getaddrinfo('localhost', 8080)

如果它在那里不起作用,它将不会在Bottle示例中起作用。如果出现问题,您可以尝试'127.0.0.1'而不是'localhost'。

答案 1 :(得分:8)

在我的情况下,问题是,当我没有代理时,某些安装在我的机器上定义了一个环境变量 http_proxy

删除 http_proxy 环境变量修复了问题。

答案 2 :(得分:2)

我的问题是我需要为http_proxyhttps_proxy 添加环境变量。

如,

http_proxy=http://your_proxy:your_port
https_proxy=https://your_proxy:your_port

要在Windows中设置这些环境变量,请参阅this question的答案。

答案 3 :(得分:2)

确保在命令中传递代理属性 例如 - pip install --proxy = DialogAction.validatedPrompt pixiedust

使用直接连接的代理端口(带/不带密码)。与您的企业IT管理员交谈。快速的方法是找出eclipse中使用的网络设置,它将直接连接。

如果您在公司防火墙后面工作,您将经常遇到此问题。您必须检查您的Internet Explorer - InternetOptions -LAN连接 - 设置

取消选中 - 使用自动配置脚本 检查 - 为LAN使用代理服务器。确保您已给出正确的地址和端口。

单击“确定” 回到anaconda终端,你可以尝试安装命令

答案 4 :(得分:0)

也许这会对某些人有所帮助。我在 python 脚本中设置了代理,但不断收到问题中提到的错误。

下面是一段将我的用户名和密码作为开头的常量。

   if (use_proxy):
        proxy = req.ProxyHandler({'https': proxy_url})
        auth = req.HTTPBasicAuthHandler()
        opener = req.build_opener(proxy, auth, req.HTTPHandler)
        req.install_opener(opener)

如果您使用的是公司笔记本电脑,并且没有连接到 Direct Access 或办公室 VPN,则上述块将引发错误。您需要做的就是连接到您的组织 VPN,然后执行您的 Python 脚本。

谢谢

答案 5 :(得分:-2)

尝试资本UTF-8,它与我合作