attributeerror:模块“mysql.connector”没有属性“cursor\u cext”

lvjbypge  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(523)

当我尝试连接到数据库时,出现以下错误:
错误

  1. AttributeError: module 'mysql.connector' has no attribute 'cursor_cext'

代码.py

  1. import mysql
  2. import mysql.connector
  3. from mysql.connector import errorcode
  4. # MySQL database access parameters
  5. DB_PARAMS = {
  6. "user": "root",
  7. "password": "letmego",
  8. "host": "localhost",
  9. "port": 3306,
  10. "raise_on_warnings": False,
  11. "database": "playground"
  12. }
  13. def connect_db(
  14. params: dict,
  15. verbose: bool = True
  16. ) -> mysql.connector.connection_cext.CMySQLConnection:
  17. try:
  18. conn = mysql.connector.connect(**params)
  19. except mysql.connector.Error as err:
  20. print("[!] Function 'connect_db'")
  21. print(f"\t{err}\n")
  22. exit(1)
  23. else:
  24. if verbose:
  25. print(f"Database '{params['database']}' successfully connected.\n")
  26. return conn
  27. if __name__ == '__main__':
  28. # connect to MySQL
  29. conn = connect_db(DB_PARAMS)

请告诉我我做错了什么。我还认为我已经导入了正确的依赖项。

jutyujz0

jutyujz01#

这个 connect_db 方法不会返回您所说的类型。正如您在这里的代码中看到的,它返回一个 mysql.connector.connection.MySQLConnection 对象而不是 mysql.connector.connection_cext.CMySQLConnection . 您可以通过以下方式导入正确的类来修复代码: from mysql.connector.connection import MySQLConnection 然后将connect_db方法上的键入替换为:

  1. def connect_db(
  2. params: dict,
  3. verbose: bool = True
  4. ) -> MySQLConnection:

相关问题