鱼C论坛

 找回密码
 立即注册
查看: 1072|回复: 4

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

[复制链接]
发表于 2021-9-25 12:30:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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

....求助大佬。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


谢谢能抽空回帖。。。

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 13:21:25 | 显示全部楼层
lvlwhere 发表于 2021-9-25 12:52
谢谢能抽空回帖。。。

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

报错是不会骗人的,请贴出全部代码,全部。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-25 13:57:16 | 显示全部楼层
suchocolate 发表于 2021-9-25 13:21
报错是不会骗人的,请贴出全部代码,全部。

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

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

谢谢大佬。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表