最近在看廖老师的教程,虽一步步照做,还是出了问题。抄代码也能抄错也是服。找错误找了好久。现记录下来
调试程序,step into“yield from orm.create_pool(...)”,并单步执行create_pool()函数,在执行到最后一句“autocommit=...”时报错AttributeError: 'NoneType' object has no attribute 'encoding'。在非常仔细地对比源码和自己抄写的代码后,终于发现导致错误的地方: create_pool(..., charset=kw.get(‘charset’, ‘编码方式’), ...)中我将编码方式写成’utf-8’,而正确的写法是’utf8’,就是这么一个微小的错误,还害得我找了好久。后来想想这个错是真的坑,‘utf-8’是很常用且大多数情况下正确的写法啊,结果aiomysql中非得用‘utf8’,也是没有办法了
完整的错误提示如下:
E:\Codes\python3-webapp\www>python test.py
Traceback (most recent call last):
File "test.py", line 15, in <module>
loop.run_until_complete(insert(loop))
File "D:\MySoftwares\Python\Python36\lib\asyncio\base_events.py", line 4