最近在尝试运行实习的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
重新启动服务,即可访问服务器页面。
网友评论