如何解决VSCode中mysql.connector无CMySQLConnection属性的报错?
解决AttributeError: module 'mysql.connector' has no attribute 'CMySQLConnection'错误
这个错误的核心原因是你安装的mysql-connector-python是纯Python实现版本,不包含C扩展组件,而代码中尝试调用了仅在C扩展版本中存在的CMySQLConnection类。以下是两种可行的修复方案:
方案一:安装带C扩展的连接器版本
- 先卸载现有纯Python版本的包:
pip uninstall -y mysql-connector-python - 安装包含C扩展的版本(官方推荐方式):
如果是Linux系统,安装前可能需要先安装编译依赖(比如pip install mysql-connector-python[cext]gcc、libmysqlclient-dev或mysql-devel,根据发行版选择),否则可能编译C扩展失败。
方案二:修改代码适配纯Python版本
如果不需要C扩展的性能提升,可以直接改用纯Python实现的连接类,替换代码中的CMySQLConnection:
- 原错误代码示例:
from mysql.connector import CMySQLConnection conn = CMySQLConnection(host="localhost", user="your_user", password="your_pass", database="your_db") - 修改后代码:
或者更简便的方式,使用from mysql.connector import MySQLConnection conn = MySQLConnection(host="localhost", user="your_user", password="your_pass", database="your_db")connect()函数自动适配可用的连接实现:import mysql.connector conn = mysql.connector.connect(host="localhost", user="your_user", password="your_pass", database="your_db")
额外排查点
确认VSCode使用的Python解释器与你执行pip命令的解释器是同一个:
- 在VSCode左下角查看当前选中的Python解释器路径。
- 使用该路径下的
pip重新安装包,例如:/path/to/your/python/interpreter -m pip install mysql-connector-python[cext]
内容的提问来源于stack exchange,提问作者MatCat
相关产品推荐
相关产品推荐

