Nuitka打包PyQt项目快速上手

文章介绍了使用Nuitka这个Python编译器将代码转换为C++,以提高执行效率和创建独立的可执行文件。在Windows环境下,通过MinGW64进行编译,并详细列举了使用Nuitka的参数,如--standalone选项以创建独立的exe,以及如何处理各种模块和图标等。文章还提到了解决版本兼容性问题的方法,并强调了Nuitka在打包PyQt程序中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前用pyinstaller打包python程序,听说Nuitka比较快,用它打包PyQt的程序练练手。

Nuitka

问了问chatGPT,总结几点:将python编译成C/C++,提高速率、跨平台、编译后程序直接运行(不需要python解释器)

        Nuitka是一个开源的Python编译器,可以将Python代码转换为C++或C代码,从而提高Python程序的执行效率。它支持Python 2.6、2.7和3.x版本,可在Linux、macOS和Windows等操作系统上运行。

        与传统的解释型Python不同,使用Nuitka编译后的代码可以直接在目标计算机上运行,不需要安装Python解释器。同时,由于部分代码被转换为C++或C语言,因此可以获得更好的性能表现和更小的内存占用。

        除了编译器本身,Nuitka还包含了一些工具和库,例如Nuitka Debugger和Nuitka GUI,以帮助用户更好地管理和调试他们的代码。此外,该项目还拥有一个活跃的社区,提供了详细的文档和示例代码,方便用户学习和使用。

环境配置

使用环境先说一下

window10、python3.6

参考 Python打包exe的王炸-Nuitka - 知乎 (zhihu.com)

1、下载MinGW64 8.1 (用来编译成可执行程序)

2、安装nuitka,pip install nuitka

操练

常用的参数

--mingw64 #默认为已经安装的vs2017去编译,否则就按指定的比如mingw(官方建议)

--standalone 独立环境,这是必须的(否则拷给别人无法使用)

--windows-disable-console 没有CMD控制窗口

--output-dir=out 生成exe到out文件夹下面去

--show-progress 显示编译的进度,很直观

--show-memory 显示内存的占用

--enable-plugin=pyqt5

--plugin-enable=tk-inter 打包tkinter模块的刚需

--plugin-enable=numpy 打包numpy,pandas,matplotlib模块的刚需

--plugin-enable=torch 打包pytorch的刚需

--plugin-enable=tensorflow 打包tensorflow的刚需

--windows-icon-from-ico=你的.ico 软件的图标

--windows-company-name=Windows下软件公司信息

--windows-product-name=Windows下软件名称

--windows-file-version=Windows下软件的信息

--windows-product-version=Windows下软件的产品信息

--windows-file-description=Windows下软件的作用描述

--windows-uac-admin=Windows下用户可以使用管理员权限来安装

--linux-onefile-icon=Linux下的图标位置

--onefile 像pyinstaller一样打包成单个exe文件(2021年我会再出教程来解释)

--include-package=复制比如numpy,PyQt5 这些带文件夹的叫包或者轮子

--include-module=复制比如when.py 这些以.py结尾的叫模块

打包及问题解决

nuitka --standalone --lto=no --report=report.xml --mingw64 --show-progress --show-memory --nofollow-import-to=pymysql,multiprocessing,http,email --enable-plugin=pyqt5 --output-dir=dis --windows-icon-from-ico=logo.ico main.py

报错提示版本太低:

Nuitka-Scons:INFO: Too old gcc 'C:\MinGW\x86_64-8.1.0\mingw64\bin\gcc.exe' ((8, 1, 0) < (11, 2)) ignored!
Nuitka will use gcc from MinGW64 of winlibs to compile on Windows.

WinLibs - GCC+MinGW-w64 compiler for Windows

在这个网址重新下个MinGW,记得解压修复环境变量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bitQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值