Porting to python3

未完成。能力有限，部分测试仍无法通过。