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

Ubuntu16.04打包PyQt5应用时cx_Freeze依赖库缺失求助

我之前在Ubuntu 16.04.02打包PyQt5应用时也踩过一模一样的坑,给你分享几个亲测有效的解决办法:

解决ICU 56库(libicuuc.so.56、libicudata.so.56)缺失问题

Ubuntu 16.04默认自带的是ICU 55,而新版PyQt5依赖的ICU版本更高,你可以选以下两种方案:

方案1:手动下载安装ICU 56的deb包

直接从Ubuntu安全仓库获取对应版本的包:

sudo wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu56_56.1-6ubuntu0.4_amd64.deb
sudo dpkg -i libicu56_56.1-6ubuntu0.4_amd64.deb
# 如果出现依赖错误,执行以下命令修复
sudo apt-get install -f

方案2:通过PPA升级ICU

添加维护旧版本Ubuntu软件包的PPA,然后安装ICU 56:

sudo add-apt-repository ppa:jonathonf/icu
sudo apt-get update
sudo apt-get install libicu56

备选方案:降级PyQt5适配ICU 55

如果不想升级系统库,也可以降级PyQt5到兼容ICU 55的版本(比如5.8.x系列):

pip install PyQt5==5.8.2
解决libQt5EglFSDeviceIntegration.so.5缺失问题

这个库属于Qt5的EGL FS设备集成模块,Ubuntu默认没预装,直接安装对应包即可:

sudo apt-get install libqt5eglfsdeviceintegration5

如果安装后cx_Freeze还是找不到,你可以在setup.py里手动指定这个库的路径,让打包工具强制包含它:

build_exe_options = {
    "include_files": [
        "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/eglfs/libQt5EglFSDeviceIntegration.so.5"
    ]
}

setup(
    # 你的其他配置
    options={"build_exe": build_exe_options},
    # ...
)

额外小技巧:如果还有其他库缺失,可以用ldd命令检查PyQt5核心模块的依赖,比如:

ldd /usr/lib/python3/dist-packages/PyQt5/QtWidgets.so

从输出里找缺失的库,再针对性安装就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:26:40