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

使用PyInstaller打包Python程序后遇mysql.connector相关错误求助

解决PyInstaller打包mysql.connector时的两个错误

错误拆解

你碰到两个核心问题:一是指定的caching_sha2_password模块未被正确识别,二是mysql connector的英文本地化文件缺失,触发ImportError: No localization support for language 'eng'。

解决步骤

方法1:命令行直接补全参数

先定位mysql.connector的安装路径,执行以下命令:

python -c "import mysql.connector; print(mysql.connector.__file__)"

输出类似venv/Lib/site-packages/mysql/connector/__init__.py,对应的locales目录就是venv/Lib/site-packages/mysql/connector/locales。

替换路径后执行打包命令(Windows用分号分隔路径,Mac/Linux用冒号):

# Windows示例
pyinstaller --onefile ^
--hidden-import mysql.connector.plugins.caching_sha2_password ^
--hidden-import mysql.connector.plugins.mysql_native_password ^
--hidden-import mysql.connector.locales.eng.client_error ^
--add-data "C:/path/to/mysql/connector/locales;mysql/connector/locales" ^
test.py

# Mac/Linux示例
pyinstaller --onefile \
--hidden-import mysql.connector.plugins.caching_sha2_password \
--hidden-import mysql.connector.plugins.mysql_native_password \
--hidden-import mysql.connector.locales.eng.client_error \
--add-data "/path/to/mysql/connector/locales:mysql/connector/locales" \
test.py

方法2:用.spec文件灵活配置

  1. 生成基础.spec文件:
pyinstaller --onefile test.py
  1. 打开生成的test.spec,修改Analysis部分:
a = Analysis(
    ['test.py'],
    pathex=[],
    binaries=[],
    # 补充需要隐藏导入的模块
    hiddenimports=['mysql.connector.plugins.caching_sha2_password', 'mysql.connector.plugins.mysql_native_password', 'mysql.connector.locales.eng.client_error'],
    # 添加本地化文件目录
    datas=[('C:/path/to/mysql/connector/locales', 'mysql/connector/locales')],
    ...
)
  1. 用修改后的.spec文件打包:
pyinstaller test.spec

额外小技巧

在test.py开头手动导入本地化模块,PyInstaller可能会自动检测并打包:

import mysql.connector.locales.eng.client_error

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:13:19