PyQt5写好的py文件生成可执行的exe文件【Nuitka】

news2024/12/24 8:56:03

文章目录

  • 1.Nuitka引入
  • 2.Nuitka与Pyinstaller对比
    • Nuitka安装
  • 3.Nuitka指令
  • 4.参数以及作用
  • 5.多文件格式封装完成后可删除文件
  • 6.运行问题
    • 问题1
    • 问题2

1.Nuitka引入

  看过我上一篇PyQt5写好的py文件生成可执行的exe文件【Pyinstaller】的应该了解到用PyQt5写的界面程序可以通过Pyinstaller打包成exe可执行程序,那么打包程序就这一种方式吗?当然不是,本章将介绍另一个大杀器,它的名字叫做Nuitka!
  那么有人可能就要问了,Pyinstaller已经可以将PyQt5打包成exe可执行程序了,为什么还需要介绍Nuitka,结果都是可执行文件,没什么区别嘛?!
  No,No,No!区别大了去了!Pyinstaller打包程序虽然指令简单,打包速度快,非常适合小白使用,但是长剑在手其比不好挥舞,它的问题就是打包完成的程序会占用很大的内存,并且实际运行时点击exe文件后一般需要等个十几秒才会响应,这就让人很膈应了,要知道目标检测的模型目前追求的大致包括三个方向,一是精确度,而是轻量化,三便是实时性,好家伙,Pyinstaller跟第一个不沾边,另两条完全不满足,非要我概括就是四肢发达头脑简单,毕竟人都有爱美之心,我们肯定喜欢文静内敛但不失风度的美男子,Nuitka就是这个美男子!同样的,风险与收益并存,Nuitka也并非全身都是优点,人非圣贤,孰能无过!那Nuitka的优缺点各是啥呢?

2.Nuitka与Pyinstaller对比

  简单的来说,Nuitka就是Pyinstaller的相对面,Nuitka打包完成的程序启动快,内存小,使用简直让人心旷神怡、想入非非,但是缺点就是生成exe可执行程序时指令太多,比较繁琐。
  好啦,介绍到这里,大家需要了解的就够了,毕竟我们也不需要去写这个打包程序,大家只要知道怎么用就可以了,啊啊啊,才发现我说了这么多废话,大家是不是等不及了,让我们进入正文吧!

Nuitka安装

   Nuitka也是Python的第三方库,因此需要进行安装,安装命令是pip install Nuitka -i https://pypi.tuna.tsinghua.edu.cn/simple

3.Nuitka指令

示例:
将界面py文件和需要调用的文件放在一个文件夹,main.py与ui文件夹放在一块:


代码:

nuitka --standalone --onefile --windows-disable-console --mingw64 --nofollow-imports --show-memory --show-progress --plugin-enable=pyqt5 --include-qt-plugins=sensible,styles --windows-icon-from-ico=ui/window_icon.ico --follow-import-to=ui --output-dir=o main.py

4.参数以及作用

参数作用
–standalone独立环境(这是必须的,否则拷给别人无法使用)
–windows-disable-console不显示控制台窗口
–mingw64默认为已经安装的vs2017去编译,否则就按指定的比如mingw
–nofollow-imports所有的import不编译,交给python3x.dll执行
–show-memory显示内存的占用
–show-progress显示编译的进度,很直观
–remove-output删除编译过程文件
–plugin-enable=pyqt5需要加载的PyQt插件
–plugin-enable=numpy打包numpy,pandas,matplotlib模块的刚需
–plugin-enable=pytorch打包pytorch的刚需
–plugin-enable=upx打包压缩
–include-qt-plugins=sensible,styles打包后PyQt的样式就不会变了
–windows-icon-from-ico=你的.ico软件图标
–windows-product-name=软件名称软件名称
–onefile打包成单个exe文件(与–standalone不放在一起)
–follow-import-to=uineed为你需要编译成C/C++的py文件夹命名
–follow-import-to=need --follow-import-to=a --follow-import-to=b修改所有的文件夹路径,全部放在need下,这样最省事 , 可以一直添加
–output-dir=o生成exe到o文件夹下面去

5.多文件格式封装完成后可删除文件

可以删除的dll不可删除
api-开头全部文件生成exe到o文件夹下面去
qt5websockets.dllqt5widgets.dll
qt5qml.dllqt5core.dll
qt5qmlmodels.dllqt5core.dll
qt5printsupport.dll
qt5multimedia.dll
qt5network.dll
qt5dbus.dllqt5gui.dll
qt5quick.dll
qt5svg.dll
qt5svg.dll
msvcp140.dll
msvcp140_1.dll
libssl-1_1.dlllibffi-7.dll
libcrypto-1_1.dll
libeay32.dll
ssleay32.dll
ucrtbase.dll
concrt140.dll
vcruntime140.dllvcruntime140_1.dll
python39.dllpython3.dll
可以删除的pyd不可删除
_bounded_integers.pyd_ctypes.pyd
_socket.pyd
_decimal.pyd
_hashlib.pyd
_lzma.pyd
select.pyd
unicodedata.pyd
_bz2.pyd
_ssl.pyd

6.运行问题

问题1

文件下载地址:ccache-4.6-windows-32.zip

下载解压到 C:\Users\Administrator\AppData\Local\Nuitka\Nuitka\Cache\downloads\ccache\v4.6

问题2

文件下载地址:epends22_x64.zip
下载解压到 C:\Users\Administrator\AppData\Local\Nuitka\Nuitka\Cache\downloads\depends\x86_64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2205876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安卓冻屏bug案例作业分享-千里马学员wms+input实战作业

背景: 近期有学员反馈在aosp14高版本上有了一个新窗口TaskBar,这个但是有需求就是对这个TaskBar进行隐藏,所以有一个需要对这个TaskBar进行进行隐藏需求 隐藏TaskBar需求做了之后发现有如下bug: 问题复现步骤: 因…

新款示波器RTE1104罗德与施瓦茨RS RTE1102原装二手

罗德与施瓦茨R&S RTE1104触摸屏RTE1102新款示波器 R&S-RTE1000 示波器系列: RTE1022标配:200MHz带宽,2通道,5GSa/s采样率,200M存储深度,16个数字通道(选配) RTE1032标配&a…

HCIP--以太网交换安全(二)端口安全

端口安全 一、端口安全概述 1.1、端口安全概述:端口安全是一种网络设备防护措施,通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理: 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…

解决PyCharm 2023 Python Packages列表为空

原因是因为没有设置镜像源 展开 > 之后,这里 点击齿轮 添加一个阿里云的源 最后还需要点击刷新 可以选择下面的任意一个国内镜像源: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/…

asp.net core Partial 分部视图、视图组件(core mvc 才支持)、视图、Razor组件 、razor pages

分部视图 》》》传参 》》两个东西换个名称,PartialView()>渲染视图>不带Layout 部分视图与普通视图没太大区别,它可以将重复使用的HTML内容结合起来,可以单独使用。 一般命名是在名称前面加下划线,放在/Views/Shared 目…

【cocos creator】输入框滑动条联动小组建

滑动条滑动输入框内容会改变 输入框输入,滑动条位置改变 const { ccclass, property } cc._decorator;ccclass() export default class SliderEnter extends cc.Component {property({ type: cc.Float, displayName: "最大值", tooltip: "" }…

基于Web的停车场管理系统(论文+源码)_kaic

摘要 我国经济的发展愈发迅速,车辆也随之增加的难以想象,因此车位的治理也越来越繁杂,为了方便停车位相关信息的管理,设计开发一个合理的停车位管理系统尤为重要。因而,具有信息方便读取和操作简便的停车位管理系统的设…

Java基础-知识点

文章目录 数据类型包装类型缓存池 String概述不可变的含义不可变的好处String、StringBuffer、StringBuilderString.intern() 运算参数传递float与double隐式类型转换switch 继承访问权限抽象类与接口super重写与重载**1. 重写(Override)****2. 重载(Overload)** Object类的通用…

H3C GRE over IPsec VPN 实验

H3C GRE over IPsec VPN 实验 实验拓扑 ​​ 实验需求 某企业北京总部、上海分支、武汉分支分别通过 R1,R3,R4 接入互联网,配置默认路由连通公网按照图示配置 IP 地址,R1,R3,R4 分别配置 Loopback0 口匹配感兴趣流,Loopback1 口模拟业务网段北京总部拥有固定公网地址…

VMware Fusion 13.6.1 发布下载,修复 4 个已知问题

VMware Fusion 13.6.1 发布下载,修复 4 个已知问题 VMware Fusion 13.6.1 for Mac - 领先的免费桌面虚拟化软件 适用于基于 Intel 处理器和搭载 Apple 芯片的 Mac 的桌面虚拟化软件 请访问原文链接:https://sysin.org/blog/vmware-fusion-13/ 查看最新…

找不到xinput1_3.dll怎么解决,快来试试这个几个方法

在计算机系统运行过程中,当我们遭遇“找不到xinput1_3.dll”这一错误提示时,实际上正面临一个软件兼容性、系统组件缺失以及游戏或应用程序无法正常启动的关键问题。深入探究这一现象,我们会发现它可能引发一系列连带问题,例如某些…

【课程设计/毕业设计】Java家政预约管理系统源码+开发文档

项目介绍 一直想做一款家政管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以咨询留言。 在线体验 http://jiazheng.gitapp.cn/ 源码地址 https://github.com/geeeeeeeek/java_jiazh…

JVM和GC案例详解

接上文JVM环境配置说明:上文博客 一、JVM远程连接设置 1. JMX方式连接(这种方式没有GC监控),设置如下 2. 连接成功后可以查看基础配置参数(和服务器配置一致) 2. jstatd方式连接(这种方式没有CPU监控) 添加jstatd方式连接 双击Tomcat&#xff0…

python可变数据类型和不可变数据类型

先看一段代码。 value1 10 value2 value1 print(value1) print(value2) value1 30 print(value1) print(value2)再看另一段代码。 list1 [1,2,3,4] list2 list1 print(list1) print(list2) list1.append(5) print(list1) print(list2)第一段代码中,value2的值…

深入解析:如何使用LangChain进行RAG处理半结构化数据

深入解析:如何使用LangChain进行RAG处理半结构化数据 引言 在处理半结构化数据如PDF文件时,如何有效提取信息是一个挑战。本文将介绍如何使用LangChain的RAG处理模板处理这样的数据。我们将探讨安装、使用和在项目中集成的完整过程。 主要内容 环境设…

FLBOOK一款强大的电子产品图册制作工具

随着科技的飞速发展,电子产品已经成为我们生活中不可或缺的一部分。为了让消费者更好地了解产品特性、功能及优势,电子产品图册的制作显得尤为重要。今天,我要向大家介绍一款强大的电子产品图册制作工具——FLBOOK。 一、FLBOOK简介 FLBOOK是…

芜湖儿童自闭症寄宿制学校:为孩子打开未来大门

在探索自闭症儿童教育的广阔领域中,寄宿制学校以其独特的教育模式和全面的关怀体系,为自闭症儿童及其家庭带来了新的希望与可能。虽然本文聚焦于芜湖儿童自闭症寄宿制学校的概念,但让我们以广州星贝育园自闭症儿童寄宿制学校为具体实例&#…

登顶!智源BGE首开国产模型Hugging Face月度下载全球第一

BGE(BAAI General Embedding)系列模型是北京智源人工智能研究院研发的开源通用向量模型,该模型专为各类信息检索及大语言模型检索增强应用而打造。 自2023年8月发布首款模型BGE v1,历经数次迭代,BGE已发展为全面支持“…

百度下拉框出词技术解密:72小时出下拉词软件原理分享

如何才能刷下拉词?这个问题一直是企业做流量时最纠结的问题,百度下拉词作为百度搜索体验中的一项智能化功能,极大地方便了用户快速完成搜索,也成为了企业在搜索引擎优化(SEO)策略中的重要流量入口。通过研究…

Python学习-函数

函数 文章目录 函数定义与调用参数传递内存分析返回值参数定义默认值参数个数可变的参数关键字参数 变量的作用域 匿名函数基本语法示例lambda与排序高阶函数map函数reduce函数filter函数 多关键字排序 定义与调用 函数可以嵌套用 先定义后调用 def calc(a,b):cabreturn cre…