---
title: "【最佳实践】Python桌面应用程序开发构建发布工作流"
author: "Perrin Yong"
author_profile: https://www.pystone.net/profile/
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/python-desktop-app-dev-workflow/
type: note
content_role: unspecified
visibility: public
id_stability: rename-stable
source_path: "10-计算机、信息技术与工程/04-应用开发与云端工程/桌面应用开发/【最佳实践】Python桌面应用程序开发构建发布工作流.md"
content_hash: 80fc0b23d8d182430f558bcfffb64c202ab1990ace8acd90c63c972d106d31d3
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
# 【最佳实践】Python桌面应用程序开发构建发布工作流
.ui文件处理


## 打包

nuitka打包。
- **原理**：Nuitka是一个非常强大的Python编译器，它可以将Python代码转换成C++代码，然后编译成二进制形式。这个过程提高了代码的执行效率，并可以提供一定程度的代码保护，因为最终的产品是二进制文件而不是原始的Python代码。
- **优点**：
    - **性能提升**：通过将Python代码转换为优化的C++代码，然后编译成机器码，Nuitka可以提供显著的性能提升。
    - **代码保护**：编译后的二进制文件较难逆向工程，为源码提供了一层保护。
    - **兼容性**：支持多种平台，包括Windows、Linux和macOS。
	- 使用者多，相关资料多。
    - 配置容易。

PySide6项目打包：https://blog.csdn.net/qq_25262697/article/details/129302819
其他资料：https://zhuanlan.zhihu.com/p/165978688


## 制作安装包
参考：https://blog.csdn.net/qq_25262697/article/details/131627847

Inno Setup 免费的 Windows 安装程序制作软件，具有易于使用的脚本语言，可以创建具有自定义界面、安装选项和脚本操作的安装程序。
Inno Setup配合nuitka体验极佳！

## 配置安装后执行的脚本

a. 在`[Files]`部分添加你的`.bat`脚本
指定`.bat`脚本的源路径和目标安装路径。例如：

`[Files] Source: "C:\MyProject\MyScript.bat"; DestDir: "{app}"; Flags: ignoreversion`
这将在安装过程中将`MyScript.bat`复制到安装目录（通常是`{app}`，即用户选择的安装目录）。

b. 在`[Run]`部分指定何时运行这个脚本
使用`[Run]`部分来指定安装后需要执行的命令。例如：

```text
[Run] Filename: "{app}\MyScript.bat"; Description: "Run my script"; Flags: postinstall skipifsilent
```

这里的`Filename`是你的`.bat`文件的安装后路径。`Description`是在安装过程中显示给用户的描述。`Flags`中的`postinstall`表示这个命令会在安装过程的最后执行，`skipifsilent`表示如果安装是在无提示（静默）模式下运行，则不执行此命令。
### 注意事项

- 在用户的机器上运行脚本可能涉及到权限问题，确保脚本不会执行任何可能需要提升权限的操作，除非你明确知道用户有足够的权限。
- 在实际部署前，充分测试安装包在各种环境下的行为，确保它的行为符合预期，且不会对用户的系统造成不良影响。

通过以上步骤，你可以在Inno Setup中配置安装程序，使其在首次安装后运行指定的`.bat`脚本。

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