昨天想着练习一下Web.py框架,就从github下载了源码,对照官网tutorial去练习了。起初在python3.2还安装不上,无奈换了2.7,OK,顺利安装。

接下来就做hello world了,这是在Windows下的尝试,网上的“大神”们似乎不太在乎Windows,没关系,谁我等屌丝技术能力有限呢,继续。

Hello world写完,运行,然后就粗线尼玛类似下面这种

line 108, in validip if validip6addr(ip): return (ip,port)

'web\net.py' line 33, in validip6addr socket.inet_pton(socket.AF_INET6, address)

好吧,百度之,无解……

Google 之中找到了https://github.com/webpy/webpy/pull/195这个问题,看下去是有人添加了校验IPV6的方法。
这在python2.7-3.3中,没有这个方法,所以需要把他添加的代码去掉,或者不要调用socket.inet_pton这个方法就可以了。
比如:
修改

__all__ = [
  "validipaddr", "validip6addr", "validipport", "validip", "validaddr",
  "urlquote",
  "httpdate", "parsehttpdate", 
  "htmlquote", "htmlunquote", "websafe",
]

去掉"validip6addr"

话说在我天朝还支持IPV6……工信部早把你吃了。

而且,问什么Web.py就通过了这个pull request呢,有木有测试,你们在用什么版本 T-T