减少 Pyinstaller 生成的可执行文件的文件大小的一般技巧有哪些

2024-01-24

我正在使用 Pyinstaller 将 python 脚本转换为可执行文件,该脚本包含来自各种包(如 nltk、begin、json 等)的多个导入。 10 行代码生成的可执行文件为 54MB,这是不切实际的高,我知道它将所有模块打包在一个文件中,但是它是否使其如此之大,因为 python 脚本本身只有 2KB。

减少“.exe”文件大小的一般技巧有哪些?

我正在使用下面的命令来转换脚本

>pyinstaller.py  -F  -o output check.py

我只导入了单个函数而不是整个模块,例如:

from nltk.metrics.agreement import AnnotationTask

导入的模块具有独立的功能,我只选择性地导入了3-4个功能,但这似乎对生成的exe文件大小没有任何影响,所有功能都浪费地导入到exe文件中吗?如何避免这种情况?


您正在比较两个完全不同的东西,您生成的 exe 文件不仅包含您的文件,还包含 Python 解释器和所有导入的模块。看看我在 Windows 下安装的 python 2.7,我发现它有 83 MB 大。 ntlk 和 co 可能也不是最小的库,您必须以某种方式将它们全部包含在可执行文件中。为了进行比较,我的一个中小型项目使用 cx_freeze 生成了大约 23 MB(其中包括 10 MB 的 QT4 dll),因此您可以尝试一下。

您也可以使用 UPX 压缩可执行文件,如下所述here http://htmlpreview.github.io/?https://github.com/pyinstaller/pyinstaller/blob/v2.0/doc/Manual.html#a-note-on-using-upx这可能有帮助。

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

减少 Pyinstaller 生成的可执行文件的文件大小的一般技巧有哪些 的相关文章

  • Pandas ParserError:标记数据时出错。 C 错误:字符串内有 EOF

    我的数据超过 400 000 行 运行此代码时 f pd read csv filename error bad lines False 我收到以下错误 pandas errors ParserError Error tokenizing
  • 使用 pyppeteer 与 asyncio 关联来抓取内容

    我用 python 结合编写了一个脚本pyppeteer随着asyncio从其登陆页面抓取不同帖子的链接 并最终通过跟踪通向其内页的 url 来获取每个帖子的标题 我这里解析的内容不是动态的 但是 我利用了pyppeteer and asy
  • 如何在Python中反转列表的列表? [复制]

    这个问题在这里已经有答案了 我想知道如何反转 python 中的列表列表 例如 原来的 list 1 2 3 4 5 6 7 8 9 输出 new list 7 8 9 4 5 6 1 2 3 现在 我正在尝试这样做 new list re
  • TemplateSyntaxError:“settings_tags”不是有效的标签库

    当我尝试运行此测试用例时 出现此错误 这是在我的 django 应用程序的tests py 中编写的 def test accounts register self self url http royalflag com pk accoun
  • 如何进行重定向并保留查询字符串?

    我想进行重定向并保留查询字符串 就像是self redirect加上发送的查询参数 那可能吗 newurl my new route urllib urlencode self request params self redirect ne
  • 将 numpy 数组及其大小写入二进制文件

    我需要将 2D numpy 数组写入文件 包括其尺寸 以便我可以从 C 程序中读取它并创建相应的数组 我编写了一些简单的代码来保存数组 并且可以从 C 读取它 但是如果我尝试先写入数组的大小 它总是会给我一个错误 这是我的简单 python
  • Python SQLite3 SQL注入漏洞代码

    我知道下面的代码片段由于 format 的原因很容易受到 SQL 注入的攻击 但我不知道为什么 有谁明白为什么这段代码容易受到攻击以及我从哪里开始修复它 我知道这些代码片段使输入字段保持打开状态 以便通过 SQL 注入执行其他恶意命令 但不
  • 熊猫系列到二维数组

    所以 我使用了来自的答案将二维数组放入 Pandas 系列中 https stackoverflow com questions 38840319 put a 2d array into a pandas series将 2D numpy
  • 如何使用 Python 在表单中选择选项?

    我想知道如何以格式如下的形式选择选项 td align left td
  • Python:处理图像并保存到文件流

    我需要使用 python 处理图像 应用过滤器和其他转换 然后使用 HTTP 将其提供给用户 现在 我正在使用 BaseHTTPServer 和 PIL 问题是 PIL 无法直接写入文件流 因此我必须写入临时文件 然后读取该文件 以便将其发
  • python os.fork 使用相同的 python 解释器吗?

    据我所知 Python 中的线程使用相同的 Python 解释器实例 我的问题是与创建的流程相同os fork 或者每个进程创建的os fork有自己的翻译吗 每当你 fork 时 整个 Python 进程都会在内存中复制 包括Python
  • 如何在使用 Flask for Python 3 的同时使用 Bootstrap 4?

    我检查过 发现默认安装时 Flask Bootstrap 原生使用 Bootstrap 3 3 7 但实际上我想通过使用 Flask Bootstrap 包在我的项目中使用 Bootstrap 4 任何有关如何更新它或类似内容的帮助将不胜感
  • numpy 向量化而不是 for 循环

    我用 Python 写了一些代码 运行良好 但速度很慢 我认为是由于 for 循环 我希望可以使用 numpy 命令加速以下操作 让我定义目标 假设我有一个 2D numpy 数组all CMs尺寸row x col 例如考虑一个6x11数
  • 如何读取多个文件并将它们合并到一个 pandas 数据框中?

    我想读取位于同一目录中的多个文件 然后将它们合并到一个 pandas 数据框中 如果我这样做的话它会起作用 import pandas as pd df1 pd read csv data 12015 csv df2 pd read csv
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • 为什么我的 Python 散点图不起作用?

    我使用 pylab 创建了一个非常简单的散点图 pylab scatter engineSize fuelMile pylab show 该程序的其余部分不值得发布 因为正是该行给我带来了问题 当我将 散点 更改为 绘图 时 它会绘制数据图
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • 基于 Web 请求在 Airflow 上运行作业

    我想知道是否可以在通过 HTTP 收到请求时执行气流任务 我对 Airflow 的调度部分不感兴趣 我只是想用它来代替芹菜 因此 示例操作如下所示 用户提交一份表格 请求某些报告 后端接收请求并向用户发送请求已收到的通知 然后后端使用 Ai
  • Python 子进程:无法转义引号

    我知道以前曾问过类似的问题 但它们似乎都是通过重新设计参数的传递方式 即使用列表等 来解决的 但是 我这里有一个问题 因为我没有这个选项 有一个特定的命令行程序 我使用的是 Bash shell 我必须向其传递带引号的字符串 它不能不被引用

随机推荐

  • Siri 快捷方式 iOS 13 错误 INUIAddVoiceShortcutButton

    在我的项目中 我使用 Siri 快捷方式INUIAddVoiceShortcutButton 我使用这种方法来创建按钮并关联NSUserActivity let button INUIAddVoiceShortcutButton style
  • 如何在不使用 tabindex 的情况下进行 Tab 键切换时跳过项目?

    在 javascript onfocus 处理程序中 是否有一种好方法可以将焦点转移到 Tab 键顺序中的下一个项目 而无需手动输入下一个项目的 ID 我在 Django jQuery 中构建了一个 HTML 日期选择器 这是一个行编辑 然
  • 发送不带接受/拒绝选项的 Outlook 会议请求

    我正在使用我的 NET 程序发送 Outlook 会议请求 使用以下内容作为源 在没有 Outlook 的情况下发送 Outlook 会议请求 https stackoverflow com questions 461889 sending
  • 如何制作 GUI?

    我为 Nintendo DS 制作了 GUI 系统的许多不同的独立部分 例如按钮 文本框和选择框 但我需要一种将这些类包含在一个 Gui 类中的方法 以便我可以将所有内容都绘制到屏幕上一次 并立即检查所有按钮以检查是否有任何按钮被按下 我的
  • 是否可以将批量 FFT 与 CUDA 的 cuFFT 库和 cufftPlanMany 重叠?

    我正在尝试并行化称为 Chromaprint 的声学指纹识别库的 FFT 变换 它的工作原理是 将原始音频分割成许多重叠的帧并对它们应用傅立叶变换 Chromaprint 使用 4096 的帧大小 2 3 重叠 例如 第一帧由元素 0 40
  • 可以用 Electron 进行复制/粘贴吗?

    我正在使用 Electron Nightmare js 进行单元测试 我需要复制一个string到 clibboard gt 聚焦某个元素 gt 粘贴内容 然后测试是关于我的 JavaScript 是否正常处理 我在电子文档中读到剪贴板 A
  • R 中使用 mapply 对子集参数进行非标准评估

    我无法使用subset的论证xtabs or aggregate 或我测试过的任何功能 包括ftable and lm with mapply 以下调用失败并显示subset争论 但它们的工作没有 mapply FUN xtabs form
  • 将 pyQt UI 转换为 python

    有没有一种方法可以将使用 qtDesigner 形成的 ui 转换为 python 版本来使用 而无需额外的文件 我在这个 UI 中使用 Maya 并且将此 UI 文件转换为可读的 Python 版本来实现 这真的很棒 您可以使用pyuic
  • 获取每组最新的n条记录

    假设我有下表 id coulmn id value date 1 10 a 2016 04 01 1 11 b 2015 10 02 1 12 a 2016 07 03 1 13 a 2015 11 11 2 11 c 2016 01 10
  • java.lang.RuntimeException:无法实例化服务

    我正在尝试编写一个监视短信的应用程序 我想从我的主 Activity 类启动一个服务 但该服务由于某种原因没有启动 我认为我在清单文件中声明服务的方式或从活动中调用它的方式可能存在问题 这是我的活动代码的一部分 public class T
  • 如何从 Log4j Logger / Appender 中排除单个类?

    我有一个包 com example 这个包有五个类 我想将其中四个类记录到一个文件中 但排除第五个类 我可以写四个记录器 例如logger name com example Class1 并将相同的附加程序添加到所有四个记录器 有没有更简单
  • 如何对非托管 C++ Dll 进行强命名?

    我正在开发一个 C 应用程序 它使用EasyHook 库 http easyhook codeplex com 用于 DLL 注入 EasyHook 要求任何使用它的应用程序都必须是强命名的 为了对应用程序进行强命名 我需要确保我使用的所有
  • 立即调用函数表达式 (IIFE) 相对于普通函数的优势

    我对 javascript 很陌生 我读过模块模式 https addyosmani com resources essentialjsdesignpatterns book modulepatternjavascript提供某种名称空间并
  • keras 模型子类化示例

    从 Keras 2 2 0 开始 发布了模型定义的第 3 个 API 模型子类化 根据常见问题解答 然而 在子类模型中 模型的拓扑定义为 Python 代码 而不是静态的层图 这意味着 无法检查或序列化模型的拓扑 结果 以下方法和属性不可用
  • 如何在运行时更改外部类日志记录级别后刷新 log4j

    我有一些想要禁用的警告 他们来自 org eclipse lyo oslc4j provider jena JenaModelHelper 班级 所以我使用 log4j 并在运行时调用 Logger getLogger org eclips
  • 使用 Ajax 平铺滚动/预加载 HTML 层(Google 地图样式)

    我希望复制 Google Maps API 的平移 不一定是缩放 效果 但不包含图像 本质上 我想将 HTML 元素放置在一个大坐标系中 并能够在它们周围导航 Prezi http prezi com 样式 尽管没有旋转 最好 我想通过 j
  • Magento:您可以设置它以便所有网站共享相同的订单增量 ID 序列吗?

    有谁知道是否可以让所有网站或商店共享相同的订单增量 ID 基本上 我们正在使用一个 ERP 系统 该系统允许我们提交发票号码作为系统中的实际订单号码 但问题是 他们只需要一个号码序列 而不是像 Magento 那样为每个商店使用不同的号码序
  • 防止 asp.net mvc 应用程序中的多个 POST

    如果用户不断单击提交按钮 如何防止用户多次将相同的数据发布到操作 我知道在 php 中 有一种方法可以防止这种多次提交 但我没有看到任何用于 asp net mvc 的方法 有没有 您可以使用 JavaScript 禁用提交按钮 jQuer
  • 画布上绘制的圆圈与屏幕不匹配

    我想在屏幕中心画一个圆圈 但我得到的是这样的东西 我正在使用这段代码来绘制这个圆圈 public void onCreate Bundle savedInstanceState super onCreate savedInstanceSta
  • 减少 Pyinstaller 生成的可执行文件的文件大小的一般技巧有哪些

    我正在使用 Pyinstaller 将 python 脚本转换为可执行文件 该脚本包含来自各种包 如 nltk begin json 等 的多个导入 10 行代码生成的可执行文件为 54MB 这是不切实际的高 我知道它将所有模块打包在一个文