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

PyInstaller打包Python脚本后MySQL连接报错问题排查请求

问题定位与解决方案

这是PyInstaller打包mysql-connector-python时的典型问题——PyInstaller的静态代码分析无法识别mysql.connector动态加载的插件模块和本地化语言文件,导致打包后的可执行文件缺失这些依赖项,进而触发报错。

核心问题拆解

  1. 插件缺失:mysql.connector会根据MySQL服务器的认证方式动态加载对应插件(如caching_sha2_password),PyInstaller默认不会自动打包这类动态导入的模块。
  2. 本地化文件缺失:错误中的ImportError: No localization support for language 'eng',是因为打包时未包含mysql.connector的英文语言包文件。

解决方案

方案1:命令行直接指定打包参数

通过PyInstaller的命令行参数,强制打包缺失的依赖:

  • --hidden-import:指定需要手动导入的插件模块
  • --add-data:添加本地化语言文件目录
Windows环境打包命令
pyinstaller --onefile --hidden-import mysql.connector.plugins.caching_sha2_password --hidden-import mysql.connector.plugins.mysql_native_password --add-data "C:\Python38\Lib\site-packages\mysql\connector\locales\eng;mysql\connector\locales\eng" insert_dwi.py

注意替换C:\Python38\Lib\site-packages为你的Python实际安装路径

Linux环境打包命令
pyinstaller --onefile --hidden-import mysql.connector.plugins.caching_sha2_password --hidden-import mysql.connector.plugins.mysql_native_password --add-data "/usr/local/lib/python3.8/site-packages/mysql/connector/locales/eng:mysql/connector/locales/eng" insert_dwi.py

注意替换/usr/local/lib/python3.8/site-packages为你的Python实际安装路径

方案2:修改数据库连接配置(临时应急)

如果暂时不想调整打包参数,可以在连接配置中显式指定认证插件,绕过caching_sha2_password插件的加载需求,但本地化文件缺失问题仍需处理:

db_config_test = {
    'host': '127.0.0.1',
    'user': 'root',
    'port': 3306,  # 建议用整数类型,而非字符串
    'password': '123456',
    'database': 'dwi_test',
    'auth_plugin': 'mysql_native_password'
}

方案3:使用.spec文件持久化配置

如果需要多次打包,建议生成并修改.spec文件,更灵活地管理依赖:

  1. 生成基础.spec文件:
pyinstaller --onefile insert_dwi.py
  1. 打开生成的insert_dwi.spec,修改Analysis段的datas和hiddenimports:
a = Analysis(
    ['insert_dwi.py'],
    pathex=[],
    binaries=[],
    datas=[('你的Python路径/site-packages/mysql/connector/locales/eng', 'mysql/connector/locales/eng')],
    hiddenimports=['mysql.connector.plugins.caching_sha2_password', 'mysql.connector.plugins.mysql_native_password'],
    # 其他默认内容保留
)
  1. 基于.spec文件打包:
pyinstaller insert_dwi.spec

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:45:18