Discuss
/
Python
/
被这个问题“AttributeError: 'Connection' object has no attribute '_writer'” 搞了三天, 没法往下学习, 今天终于好了...
被这个问题“AttributeError: 'Connection' object has no attribute '_writer'” 搞了三天, 没法往下学习, 今天终于好了...
Topic source你好,我也是遇到你这个问题了,也是重新卸载了aiomysql跟pymysql,然后用pip install aiomysql的同时也安装了pymysql,版本同为0.0.6,但是仍然报错,我想问问你是怎样解决的呢?
之前的课程里边, 可能也安装了其它版本的 pymysql 之类的, python里边貌似支持用不同安装方式安装同一版本的插件, 所以你卸载的时候最好保证卸载干净了
pip freeze
列出所有的已安装的包, 看看跟这次相关的包是否清理干净, 最好是用哪种方式安装的,就用哪种方式卸载。然后重新安装 aiomysql
__pool = await aiomysql.create_pool(
loop=loop,
host=kwargs.get('host', 'localhost'),
port=kwargs.get('port', 3306),
user=kwargs['user'],
password=kwargs['password'],
db=kwargs['db'],
charset=kwargs.get('charset', 'utf8'),
autocommit=kwargs.get('autocommit', True),
maxsize=kwargs.get('maxsize', 10),
minsize=kwargs.get('minsize', 1)
)
谢谢Galalxy,把数据库连接编码utf-8改为utf8就可以了!
- 1
- 2
一雷叔一
Traceback (most recent call last): File "apptest.py", line 13, in <module> loop.rununtilcomplete(test(loop)) File "C:\Python34\lib\asyncio\baseevents.py", line 316, in rununtilcomplete return future.result() File "C:\Python34\lib\asyncio\futures.py", line 275, in result raise self.exception File "C:\Python34\lib\asyncio\tasks.py", line 238, in _step result = next(coro) File "apptest.py", line 8, in test yield from orm.create_pool(loop = loop, user='www-data', password='www-data', db='awesome', charset='utf-8') File "C:\Users\zehu\PycharmProjects\WebApp\www\orm.py", line 24, in create_pool loop=loop File "C:\Python34\lib\site-packages\aiomysql\pool.py", line 19, in create_pool yield from pool._fill_free_pool(False) File "C:\Python34\lib\site-packages\aiomysql\pool.py", line 139, in _fill_free_pool **self._conn_kwargs) File "C:\Python34\lib\site-packages\aiomysql\connection.py", line 67, in connect autocommit=autocommit, echo=echo, loop=loop) File "C:\Python34\lib\site-packages\aiomysql\connection.py", line 159, in __init self._encoding = charset_by_name(self._charset).encoding AttributeError: 'NoneType' object has no attribute 'encoding' Exception ignored in: <bound method Connection.__del of <aiomysql.connection.Connection object at 0x0000000003378A58>> Traceback (most recent call last): File "C:\Python34\lib\site-packages\aiomysql\connection.py", line 652, in __del AttributeError: 'Connection' object has no attribute '_writer'
在网上搜,没几个人遇到这问题,尝试各种修改,各种找错, 还跑到 aiomysql 模块里面去改人家的 Connection.py 文件,就是不行,一直报错! 改完了, 报连接不上mysql的 2003 的错误, 又在网上找,按照提供的方法修改,还是不行。。。 最后实在是崩溃了, 卸载了 aiomysql 和它关联的 pymysql 模块, 重新安装,终于好了!!!
注意, 由于aiomysql 可能和 pymysql 版本是固定对应的, 所以前面装了pymysql 可能会导致跟后边装的aiomysql 对应不上, 我是把两个模块的多个版本彻底卸载干净,清理完后,重新使用 setup.py 的方式安装的!