用python建立服务器时,经常遇到 Cannot assign requested address这种错误,除了端口被占用这种低级错误外,这种错误的一般来说都是hosts文件错误编辑引起的。现象有两种:
- 用127.0.0.1启动就可以,用localhost启动就不行;
- 用其他ip地址可以,用127.0.0.1不行;
用ipython或者其他的python程序需要建立server时,常常会碰到:
OSError: [Errno 99] Cannot assign requested address
解决的方法很简单:
编辑host文件: vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 your_hostname_here #此处的填hostname,记住必须与/etc/hostname中的名字一致!
改好后,重启机器。在python下用下面语句验证:
socket.gethostbyname(socket.gethostname())
如果能获得正确的ip这说明设置成功,服务器将可以正常启动。