lvlwhere 发表于 2021-9-25 12:30:21

pymysql连接报错:AttributeError: 'NoneType' object has no attribute 'id'

import pymysql
conn = pymysql.connect(host='localhost',user='root',password='123456',db='app',charset='utf8')

报错:
Traceback (most recent call last):
File "D:\Python\Django\FFT\mysql.py", line 22, in <module>
    conn = pymysql.connect(host='localhost',user='root',password='123456',db='app',charset='utf8')
File "D:\Python\Django\venv\lib\site-packages\pymysql\connections.py", line 355, in __init__
    self.connect()
File "D:\Python\Django\venv\lib\site-packages\pymysql\connections.py", line 635, in connect
    self._request_authentication()
File "D:\Python\Django\venv\lib\site-packages\pymysql\connections.py", line 842, in _request_authentication
    self.user = self.user.encode(self.encoding)
TypeError: encode() argument 'encoding' must be str, not Charset

找个各种解决办法,已经使用的是UTF8了,网上多数都是用的UTF-8的。

后来尝试:
怀疑MYSQL的数据库格式和PYMYSQL对不起来,所以统一修改UTF-8
修改了connection.py中的default-charset为utf-8,
使用
conn = pymysql.connect(host='localhost',user='root',password='123456',db='app',charset='utf-8')
又报了一个新错误。

Traceback (most recent call last):
File "D:\Python\Django\FFT\mysql.py", line 22, in <module>
    conn = pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='app')
File "D:\Python\Django\venv\lib\site-packages\pymysql\connections.py", line 355, in __init__
    self.connect()
File "D:\Python\Django\venv\lib\site-packages\pymysql\connections.py", line 635, in connect
    self._request_authentication()
File "D:\Python\Django\venv\lib\site-packages\pymysql\connections.py", line 840, in _request_authentication
    charset_id = charset_by_name(self.charset).id
AttributeError: 'NoneType' object has no attribute 'id'

Process finished with exit code 1

....求助大佬。。。。{:10_266:}{:10_266:}{:10_266:}{:10_266:}

suchocolate 发表于 2021-9-25 12:34:56

最后一个报错的位置是第22行,从中看出,还是没有使用utf-8,请把代码发全。
File "D:\Python\Django\FFT\mysql.py", line 22, in <module>
    conn = pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='app')

lvlwhere 发表于 2021-9-25 12:52:39

suchocolate 发表于 2021-9-25 12:34
最后一个报错的位置是第22行,从中看出,还是没有使用utf-8,请把代码发全。
File "D:\Python\Django\FF ...

谢谢能抽空回帖。。。

我是安装好库文件后,只写了一行conn.connect....
另外就都是Pysql库自身的文件...

suchocolate 发表于 2021-9-25 13:21:25

lvlwhere 发表于 2021-9-25 12:52
谢谢能抽空回帖。。。

我是安装好库文件后,只写了一行conn.connect....


报错是不会骗人的,请贴出全部代码,全部。

lvlwhere 发表于 2021-9-25 13:57:16

suchocolate 发表于 2021-9-25 13:21
报错是不会骗人的,请贴出全部代码,全部。

确实是有问题。
折腾了一上午,目前终于解决了。。。
我把原来的pymysql删掉了,重新安装了一下,目前运行通过了。

印象了确实不记得我改过里面的代码,新手也不会改。。。
但是实实在在发生了,而且重装后解决了。。。。

谢谢大佬。。。
页: [1]
查看完整版本: pymysql连接报错:AttributeError: 'NoneType' object has no attribute 'id'