Nuitka打包python脚本

server/2025/1/30 23:31:47/

Python脚本打包

Python是解释执行语言,需要解释器才能运行代码,这就导致在开发机上编写的代码在别的电脑上无法直接运行,除非目标机器上也安装了Python解释器,有时候还需要额外安装Python第三方包,相当麻烦。
事实上Python并不适合干这种事,但有时候确实需要Python编写的程序打包给他人一键运行。
思路通常都是分析脚本依赖(所有使用到的模块),然后收集相关资源,为了能在目标机器上正确运行,会根据不同的操作系统设置一些启动代码,最后将这些收集的资源和启动代码打包成一个目标机器上的可执行文件。
这个可执行文件包含了启动应用所需的所有内容,包括一个小型引导加载程序。这个引导加载程序负责在运行时定位并加载Python解释器的动态链接库以及你的应用程序及其所有依赖项。也就是说,其实连带打包了运行该应用所需的最小化Python环境。
如果执行exe可以发现,在本地文件系统中会解压生成临时目录,然后使用最小的Python环境执行了编译过的Python脚本。

Nuitka一键打包

这里介绍Nuitka的方式,也是Pyside6默认的打包方式。
以打包tkinter图形界面程序为例。

 python -m nuitka --onefile --enable-plugins=tk-inter --include-data-dir=images=images --include-data-dir=audio=audio  --windows-console-mode=disable --macos-create-app-bundle --macos-app-icon=./images/locked.png main.py

简单解释一下这些参数

  • –onefile,打包成一个单独的文件,–standalone打包成一个目录。
  • –enable-plugins=tk-inter,tkinter程序需要。
  • –include-data-dir=audio=audio,打包程序所用到的数据或者资源文件,audio=audio的意思是当前打包目录下的audio文件夹会被打进去,启动可执行程序后,资源文件会被解压为audio文件夹到运行目录。可以有多个该选项打包多个目录。在入口python脚本中以相对路径的方式引用资源文件即可
  • –windows-console-mode,disable表示禁用控制台窗口,执行程序不会出现终端。
  • –macos-create-app-bundle,macos专用
  • –macos-app-icon,mac上指定应用程序图标,可以是png和ico文件,需要pip install imageio。
  • –windows-icon-from-ico,windows上指定应用程序图标。

http://www.ppmy.cn/server/163648.html

相关文章

使用 Docker + Nginx + Certbot 实现自动化管理 SSL 证书

使用 Docker Nginx Certbot 实现自动化管理 SSL 证书 在互联网安全环境日益重要的今天,为站点或应用部署 HTTPS 已经成为一种常态。然而,手动申请并续期证书既繁琐又容易出错。本文将以 Nginx Certbot 为示例,基于 Docker 容器来搭建一个…

美颜技术开发实战:美颜滤镜SDK的性能优化与兼容性解决方案

本篇文章,小编将深入探讨美颜滤镜SDK的性能优化策略,并提供针对不同平台的兼容性解决方案,助力开发者打造高效稳定的美颜体验。 一、美颜滤镜SDK性能优化策略 在美颜处理过程中,图像处理的计算量大,涉及磨皮、美白、…

PostgreSQL 约束

PostgreSQL 约束 在数据库设计中,约束(Constraint)是一种规则,用于确保数据库中的数据满足特定的条件。PostgreSQL 作为一款功能强大的开源关系型数据库管理系统,提供了多种约束类型,以帮助开发者维护数据的一致性和准确性。本文将详细介绍 PostgreSQL 中常见的约束类型…

Spring MVC:深入理解与春招面试要点

在前文中,我们深入探讨了 Spring 框架的核心基础 ——IOC 和 AOP,这二者为 Spring 生态的强大功能奠定了基石。而在实际的 Web 应用开发中,Spring MVC 作为 Spring 家族中负责 Web 层开发的框架,同样发挥着举足轻重的作用。对于春…

windows修改host上github

在 Windows 上修改 hosts 文件可以帮助你解决访问 GitHub 的问题,例如绕过 DNS 污染或加速访问。以下是具体步骤: 1. 找到 hosts 文件 hosts 文件位于 Windows 系统的以下路径: C:\Windows\System32\drivers\etc\hosts2. 以管理员身份编辑 …

Linux二进制部署K8s集群的平滑升级教程

一、升级前的准备工作 备份集群配置和数据 备份/etc/kubernetes/目录,其中包含Kubernetes集群的配置文件。 备份/var/lib/etcd/目录,其中存储了etcd数据库的数据。 使用etcdctl工具备份etcd数据: bash复制 ETCDCTL_API3 etcdctl snapshot s…

【ChatGPT】意义空间与语义运动定律 —— AI 世界的神秘法则

作者介绍 斯蒂芬•沃尔弗拉姆(Stephen Wolfram) 计算机科学家、数学家和理论物理学家,当今科学和技术领域重要的革新者之一。他创造了在全世界备受推崇的软件系统——Mathematica、Wolfram|Alpha和Wolfram语言。 在 ChatGPT 内部,…

Deepseek技术浅析(一)

DeepSeek 是北京深度求索人工智能基础技术研究有限公司推出的人工智能技术品牌,专注于大语言模型(LLM)的研发与应用。其技术涵盖了从模型架构、训练方法到应用部署的多个层面,展现出强大的创新能力和应用潜力。以下将详细介绍 Dee…