【Python】Python项目打包发布(五)(制作Windows安装包)

Python项目打包发布汇总

【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目)
【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目)
【Python】Python项目打包发布(三)(基于Aardio打包多目录项目)
【Python】Python项目打包发布(四)(基于Nuitka打包PySide6项目)
【Python】Python项目打包发布(五)(制作Windows安装包)

说明

制作Windows安装包的工具有很多,其中比较知名的有:

  • NSIS
  • WiX
  • InnoSetup
  • InstallShield
  • Advanced Installer

比如Tarui自带的就有WiX和NSIS
在这里插入图片描述

1、NSIS

Python 环境下,已有开源工具包pynsist
github地址:https://github.com/takluyver/pynsist

说明

pynsist并没有对Python文件做任何编译处理,只是生成了Python文件脚本的快捷方式,打包目录下会包括整个Python环境。个人体验欠佳,不推荐。

2、InnoSetup

Inno Setup 是一个功能强大的免费安装程序制作工具。它具有易于使用的脚本语言,可以创建具有自定义界面、安装选项和脚本操作的安装程序。
Inno Setup配合nuitka体验极佳!推荐作为Python环境下的工具链。可以参考我在https://github.com/KmBase/Umi-OCR下写的nuitka_build.py一键打包脚本的配置

本脚本的主要功能有:

nuitka 生成可执行文件、zipfile制作portable文件、 InnoSetup制作安装文件。如不需要生成zip压缩包,或制作安装包。可以自行注释掉create_portable()、create_portable()对应语句

if __name__ == '__main__':build()create_portable()if SYSTEM == 'Windows':create_portable()

说明

nuitka是一个可以将Python代码转换为C++代码并编译为可执行文件或扩展模块的工具。可以明显提高python项目的加载运行速度。Inno Setup 是一个免费的 Windows 安装程序制作软件,十分简单实用的打包小工具。

使用步骤

1、安装项目依赖

pip install -r requirements.txt

2、安装nuitka

pip install -U nuitka

3、安装Inno Setup
官网下载地址:https://jrsoftware.org/download.php/is.exe
中文语言包:https://raw.githubusercontent.com/jrsoftware/issrc/main/Files/Languages/Unofficial/ChineseSimplified.isl
请保存语言包到Inno Setup安装目录
在这里插入图片描述

4、执行脚本

python nuitka_build.py

5、安装

  • 生成build目录,包括nuitka编译过程文件目录(main.build)、可执行文件目录(main.release)、Inno Setup安装脚本(.iss)
    在这里插入图片描述

  • 用Inno Setup打开生成的.iss文件,或双击.iss打开。点击Run,生成安装文件
    image

  • release目录包含portable压缩文件以及安装文件
    在这里插入图片描述

  • 双击安装文件,可以采用安装Umi-OCR到指定位置
    在这里插入图片描述

6、卸载
控制面板找到Umi-OCR,卸载即可
在这里插入图片描述

参考文献:

https://www.cnblogs.com/chrisfang/p/17027553.html

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视图与索引的详细用法

视图与索引的详细用法 1.视图的主要作用包括:1.简化查询:2.数据安全性:3.数据抽象: 2.索引简介1.索引的作用主要有以下几个方面:1.快速定位数:2. 提高查询性能3.加速排序和连接操作4.维护数据完整性 3.索引…

从0开始学架构-架构的定义

从0开始学架构-架构的定义 文章目录 从0开始学架构-架构的定义系统与子系统模块与组件框架与架构软件框架(Software framework)软件架构区别 重新定义架构:4R 架构软件架构重新定义 三组容易混淆的概念: 系统与子系统模块与组件框…

机器学习算法之决策树(decision tree)

1 决策树算法介绍 决策树(Decision Tree,又称为判定树)算法是机器学习中常见的一类算法,是一种以树结构形式表达的预测分析模型。决策树属于监督学习(Supervised learning),根据处理数据类型的不同,决策树又为分类决策…

在 Jetpack Compose 中使用 BottomAppBar

简介 Jetpack Compose 是一个现代化的、声明式的 UI 工具包,它使我们能够更方便地构建 Android 的用户界面。本篇文章将介绍如何在 Jetpack Compose 中使用 BottomAppBar 来创建底部应用栏。 什么是 BottomAppBar? BottomAppBar 是一个在屏幕底部的应用栏&#x…

SpringBoot原理分析 | 安全框架:Security

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架;提供一组可以在Spring应用上下文中配置的Be…

zookeper第二三课-Zookeeper经典应用场景实战

1. Zookeeper Java客户端实战 ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。可供选择的Java客户端API有: ZooKeeper官方的Java客户端API。第三方的Java客户端API,比如Curator。 ZooKeeper官方的客户端API提供了基本的操作。例…

干货 | 智能网联汽车大数据基础平台构建研究

以下内容整理自大数据能力提升项目必修课《大数据系统基础》同学们的期末答辩汇报。 各位老师大家上午好,我们组的题目是智能网联汽车大数据基础平台的构建。我们的指导企业是西部智联。我们的汇报将从这五个方面进行展开,第一个方面是项目背景与需求分析…

【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 转载自cpolar极点云文章:【群…

2023年前端面试题汇总-数据结构(二叉树)

对于树这个结构,最常见的就是二叉树。我们除了需要了解二叉树的基本操作之外,还需要了解一些特殊的二叉树,比如二叉搜索树、平衡二叉树等,另外还要熟悉二叉树的遍历方式,比如前序遍历、中序遍历、后序遍历、层序遍历。另外还要知道二叉树的常用遍历的方式:深度优先遍历和…

Redis常用面试题

Redis为什么执行这么快? 1.基于内存存储实现。 我们都知道内存读写比在磁盘快很多的,Redis基于内存储存实现的数据。相对于数据库存在磁盘的MySql数据库,剩余磁盘I/O的消耗 2.redis是单线程模型的,而单线程避免了CPU不必要的上…

macOS Sonoma 14 beta 3 (23A5286g) ISO、IPSW、PKG 下载

macOS Sonoma 14 beta 3 (23A5286g) ISO、IPSW、PKG 下载,7 月 5 日(北京时间今日凌晨)已发布 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安…

ITIL 4—发布管理实践

2 基本信息 2.1 目的和描述 关键信息 发布管理实践的目的是使新的和变更的服务及功能均可用。 发布管理实践是为了确保组织及其服务使用者在符合组织政策和协议的前提下,服务可以正常使用而产生的最佳实践。 传统场景下,服务组件(包括基…