socket.gaierror: [Errno -2] Name

2020-04-15  本文已影响0人  苦庭

最近在尝试运行实习的api端python项目,用了swaggerhub这个网站(能够自动进行swagger.yaml的语法检测)配置好了swagger.yaml,然后通过swagger-codegen进行项目代码的生成,上周我成功地将服务器运行了。但是昨天重新测试的时候出现了题目里的socket错误。

socket.gaierror: [Errno -2] Name or service not known

该错误为socket的GetAddrInfo()函数的异常,主要是由于host名称没有在配置文件中指定,因此无法找到对应的IP。可以通过修改hosts文件解决。

我们只要在 /etc/hosts 中进行以下修改。

hosts文件原来是:

127.0.0.1       localhost

反面例子
我一开始添加的是服务器的因特网网络IP以及网址名称

127.0.0.1       localhost
123.4.5.6       foo.bar.com

但是由于服务器网卡绑定的是内网的IP,因此会抛出如下异常

socket.error: [Errno 99] Cannot assign requested address

反面例子结束

《正确做法》
只需要在下一行加上服务器的本地IP以及网址的名称

127.0.0.1       localhost
0.0.0.0         foo.bar.com

重新启动服务,即可访问服务器页面。

上一篇 下一篇

猜你喜欢

热点阅读