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

PyInstaller打包含PyQt5、SQLAlchemy的Python代码时出现unexpected EOF报错求助

问题根因

该报错为PyInstaller内置hook-sqlalchemy.py钩子与高版本SQLAlchemy存在兼容性问题导致:钩子尝试解析SQLAlchemy支持的方言列表时返回空值,执行eval逻辑时触发语法错误。

可行解决方案

  • 方案1:升级PyInstaller到最新版本,新版本已修复该兼容问题
    执行命令:

    pip install --upgrade pyinstaller
    

    升级完成后重新执行打包命令测试即可。

  • 方案2:手动修改钩子文件跳过解析逻辑
    打开报错提示的钩子文件路径:C:\Users\username\AppData\Local\Programs\Python\Python39\lib\site-packages\PyInstaller\hooks\hook-sqlalchemy.py,找到第32行附近的dialects = eval(dialects.strip())代码段,直接替换为你实际用到的SQLAlchemy方言列表即可,示例(使用pyodbc连接SQL Server场景):

    dialects = ['sqlalchemy.dialects.mssql.pyodbc']
    

    如用到多种数据库,按格式补充对应方言路径即可。

  • 方案3:打包时指定隐藏导入跳过自动扫描
    执行打包命令时添加对应参数,示例:

    pyinstaller --hidden-import sqlalchemy --hidden-import sqlalchemy.dialects.mssql.pyodbc --hidden-import pandas.io.sql 你的主脚本名.py
    

    请将命令中的方言路径替换为你实际使用的对应数据库方言。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:18:02