打包应用程序时如何排除不必要的Qt *.so 文件?

2024-03-30

使用 PyInstaller 成功打包 PySide 应用程序后,我在包文件夹中发现了许多不同的 *.so 文件。我很惊讶地看到我在项目中没有使用的库,例如:libQt53DAnimation.so, libQt53DCore.so, libQt5Multimedia.so等等。

我没有在源代码中导入它们,也没有将它们包含在隐藏导入中。

正如我所读到的,PyInstaller 会自动查找应用程序运行所需的所有依赖项。如果我在打包后手动删除它们,那么我的应用程序运行时不会有任何更改/问题。这表明它们没有必要,也不应该将它们视为依赖项,不是吗?

那么有没有办法在打包的时候排除掉它们呢?


如果您确定它们对于您的应用程序不是必需的,您可以通过规范文件中的分析排除它们。您只需按照此处所示添加它们https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation.

您可以执行以下操作:

a.binaries = a.binaries - TOC([
  ('libQt53DAnimation.so', None, None),
  ('libQt53DCore.so', None, None),
  ('libQt5Multimedia.so', None, None),
])

还有一个--exclude-module EXCLUDES用于排除模块,但不确定它与您的情况有多大相关性。

不幸的是,pyinstaller 包含某些可选依赖项,正如 Hartmut Goebel 所解释的那样here https://github.com/pyinstaller/pyinstaller/issues/2652#issuecomment-309811964

PyInstaller 最好只包含所需的模块 - 这就是 PyInstaller 是关于什么的:-)。但很多套餐都有可选的 对于您的程序来说,这些依赖项可能不是必需的,但却是 对于其他程序。 PyInstaller 无法知道这一点,如果 PyInstaller 如果删除太多,其他程序可能会失败。请使用选项 ——排除这一点。

请记住,仅 Python 的功能“完整的 unicode support”添加了很多编解码器模块,看起来没有必要,但实际上 Python 正常工作所必需的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打包应用程序时如何排除不必要的Qt *.so 文件? 的相关文章

随机推荐

  • 在 Git 中切换分支不会删除目录

    我在 Git 中创建了两个分支 git branch F1 git branch F2 接下来 我切换到 F1 git checkout F1 I rename my UnitTests目录到Tests git mv UnitTests T
  • 使用 LimitedConcurrencyLevelTask​​Scheduler 时延续任务挂起

    我正在研究在 C NET 4 0 中使用 TPL 我创建了一个自定义 API 来简化 Web 请求的创建和下载内容 异步 使用延续任务 那部分工作正常 当我尝试使用时出现的问题LimitedConcurrencyLevelTaskSched
  • 使用 Mocks 测试 Jest 和 Typescript

    我正在使用 Typescript 和 Jest 尝试测试我的 Angular 和 Ionic 应用程序的一些组件 但问题不仅限于 Angular 或 Ionic 因此 我正在尝试让 Jest 的模拟功能发挥作用 我只是创建一个虚拟类 我想尝
  • Visual Studio 2013 - 未安装 Visual Basic/Visual C# Web 模板

    我已在我的计算机上安装了 Visual Studio 2013 Premium MSDN 许可证 然而 ASP NET Web 应用程序模板不存在 除了 Version2012 它为我提供了 MVC 4 请参见下面的屏幕截图 我已经卸载并重
  • Flask Restful:如何使用 fields.Dict() 记录响应主体?

    In flask restplus 我想对具有嵌套列表结构的响应体进行建模 因此每当进行 api 调用时 响应体都会返回我期望的内容 在响应主体中 它有一个嵌套结构 我不知道如何记录它 我要使用吗fields Dict 谁能告诉我如何实现这
  • python 波形符一元运算符作为否定 numpy bool 数组

    应该是一个简单的问题 但我无法在任何地方找到答案 这 python 中的运算符被记录为按位反转运算符 美好的 不过 我注意到看似精神分裂的行为 即 True gt 2 1 gt 2 False gt 1 0 gt 1 numpy array
  • 有没有办法增加 IntelliSense 的字体大小?

    我无法在 Visual Studio 2017 中找到该选项 我知道您可以更改正在编写的代码的字体 但没有看到 IntelliSense 选项让我认为这是不可能的 工具 选项 环境 字体和颜色 gt 语句完成 除了 编辑器工具提示 选项更改
  • @ionic/angular 4.0.0-beta.13:不允许加载本地资源:使用 webview 2.2.3 - Ionic CLI 4.3.1

    从相机拍完照片后 这些路径就出现了 file data data xxx xxx xxx xxx files 1542782360167 jpg 我使用的是Ionic 4 其中WebView是2 2 3 通过应用观察到所有类型的回复 但没有
  • Bootstrap 将容器置于页面中间[重复]

    这个问题在这里已经有答案了 I am brand new to front end and am practising by building a fake e commerce website I ve had a few issues
  • 如何在C#中有效地在桌面上绘图?

    我想用C 直接在桌面上画图 经过一番搜索 我最终使用了桌面 HDC 中的 Graphics 对象 空 然后 我使用这个 Graphics 对象正常绘画 问题是 当屏幕的任何部分被重绘时 我的形状就会丢失 我尝试了一个 While 循环 但它
  • 扫描网站内容(快速)

    我的数据库中有数千个网站 我想在所有网站中搜索特定字符串 最快的方法是什么 我认为我应该首先获取每个网站的内容 这就是我这样做的方式 import urllib2 re string search string source urllib2
  • 在透明像素之上使用 DrawString 进行错误的文本渲染

    将文本渲染到位图时 我发现在具有非不透明 Alpha 的区域顶部渲染时 文本看起来非常糟糕 随着底层像素变得更加透明 问题变得越来越严重 如果我不得不猜测 我会说当底层像素是透明的时 文本渲染器将任何抗锯齿 灰色 像素绘制为纯黑色 以下是一
  • 强制 Microsoft Build Tools 2015 包含框架目标版本的 mscorlib,而不是 4.6

    我在 Visual Studio 2015 中编写了一个应用程序 它使用 C 6 0 功能并面向 NET 4 5 2 当我使用 Microsoft Build Tools 2015 构建它时 这是由我们的 TeamCity 服务器完成的 生
  • 日历视图突出显示错误的星期

    我的应用程序中有一个 CalendarView 当用户通过触摸月视图中的日期来选择日期时 会选择正确的日期 通过在代码中添加调试语句进行验证 但前一周会突出显示 所以看起来好像选择了错误的日期 我找到了一个解决方法 如果我将 firstDa
  • CallLog.Calls 处的 RuntimeException

    如果我尝试查询 有时在某些设备上会出现 RuntimeExceptionCallLog Calls 我查询的是CallLog Calls with contentProvider接听最后一个电话 有人可以帮助我为什么有时会出现此错误吗 我认
  • 从所有 WooCommerce 预订中获取所有人的总和

    我使用官方 woocommerce 预订插件 并尝试获取所有已预订产品的人员的数量 对于单个订单 没有问题 if is callable WC booking Data Store get booking ids from order id
  • 如何在iPhone中的plist中写入多个数组?

    我的应用程序中有十个数组 我想将这些数组值写入 文档目录 plist 是否可以将 10 个数组放入一个 plist 中 否则我将为每个数组创建单独的 plist 哪一个可以实现我的应用程序 请指导我并提供一些示例链接 Thanks 做你想做
  • 为什么c 库和语言定义_name,然后typedef 或pound 定义_name name?

    看来 C 库和语言有很多无用的类型名称 例如 C 有一个内置类型 Bool并且有一个宏stdbool h define bool Bool 为什么 C 没有bool内置而不是 Bool 我发现了更多的例子stdio h and stdlib
  • 使用 jquery 和 mvc razor 的 delimitir 问题

    我无法向同一字段添加几个值 我只能选择一个值 输入后 或其他分隔符 我无法选择另一个 我希望它的工作方式类似于自动完成 我有一个带有 jQ uery 绑定的文本框 div class editor field Html EditorFor
  • 打包应用程序时如何排除不必要的Qt *.so 文件?

    使用 PyInstaller 成功打包 PySide 应用程序后 我在包文件夹中发现了许多不同的 so 文件 我很惊讶地看到我在项目中没有使用的库 例如 libQt53DAnimation so libQt53DCore so libQt5