You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mysql-connector-python 8.1.0无法导入errorcode/Error模块求助

mysql-connector-python 8.1.0导入errorcode/Error失败的解决办法

问题背景

使用Python 3.10.11 + Flask 2.3.2开发MySQL API,虚拟环境安装了mysql-connector-python 8.1.0,运行时出现错误:

ImportError: cannot import name 'errorcode' from 'mysql.connector'

数据库本身可正常连接,移除errorcode/Error相关导入后应用能正常运行,但需要使用官方定义的异常类和错误码进行后续功能扩展。

原代码中的导入片段:

import mysql.connector, requests, os
from mysql.connector import errorcode  # 报错的导入
from flask_cors import CORS, cross_origin
# ...其他导入

尝试from mysql.connector.errors import Error时也提示模块缺失。

原因分析

mysql-connector-python 8.0.30及以上版本调整了内部模块结构:

  • errorcode从顶级包移至mysql.connector.constants子模块
  • 异常类Error虽仍在mysql.connector.errors中,但新版本不再将这些内容暴露在顶级包的导出列表中,直接从mysql.connector导入会触发找不到名称的错误。

解决办法

1. 修正errorcode的导入路径

将原来的导入语句:

from mysql.connector import errorcode

替换为:

from mysql.connector.constants import errorcode

2. 修正异常类Error的导入

确保使用正确的子模块路径导入:

from mysql.connector.errors import Error

如果仍提示模块缺失,可先在虚拟环境的Python交互模式中验证导入是否可行:

# 激活虚拟环境后执行python命令进入交互模式
>>> from mysql.connector.errors import Error
>>> from mysql.connector.constants import errorcode

若交互模式下能成功导入,说明是项目代码的缓存问题,重启Flask应用即可。

3. 调整后的代码示例

修改后的完整导入部分:

import mysql.connector, requests, os
from mysql.connector.constants import errorcode
from mysql.connector.errors import Error
from flask_cors import CORS, cross_origin
import json
from flask import (Flask, redirect, render_template, request,send_from_directory, url_for)

后续使用异常类时,可直接捕获Error并获取错误码:

except Error as err:
    return f"Something went wrong: {err}, error code: {err.errno}"

内容的提问来源于stack exchange,提问作者Leo Lewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:01:26