将Python开发的Window应用打包成exe的流程步骤

 更新时间:2026年05月19日 09:19:13   作者:江上清风山间明月  
文章介绍了将Python应用打包成exe安装程序的详细步骤,首先,使用PyInstaller打包应用,并指定相关参数,然后,使用InnoSetup创建安装程序,编写安装脚本并编译生成,接着,处理文件路径问题,确保在不同环境兼容,最后,测试安装程序,需要的朋友可以参考下

步骤1:使用PyInstaller打包Python应用

安装PyInstaller

pip install pyinstaller

打包应用为目录结构(确保包含所有依赖文件):

pyinstaller --windowed --add-data "data/*;data" --add-data "tools/*;tools" --add-data "*.pdf;." main.py
  • --windowed:不显示控制台窗口(适用于GUI应用)。
  • --add-data "源路径;目标路径":将文件或目录添加到打包结果中,目标路径相对于打包目录。

验证输出

  • 打包后的文件位于 dist/main/ 目录,包含 main.exe 和所有添加的文件。

步骤2:使用Inno Setup创建安装程序

下载并安装Inno Setup

  • 官网:https://jrsoftware.org/isdl.php

编写安装脚本(.iss文件)

[Setup]
AppName=MyApp
AppVersion=1.0
DefaultDirName={autopf}\MyApp
DefaultGroupName=MyApp
OutputDir=.\Output
OutputBaseFilename=MyApp_Setup
Compression=lzma
SolidCompression=yes
[Files]
Source: "dist\main\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{group}\MyApp"; Filename: "{app}\main.exe"
Name: "{commondesktop}\MyApp"; Filename: "{app}\main.exe"
  • [Setup]:配置安装基本信息,如应用名称、版本和默认安装路径。
  • [Files]:指定需要打包的文件和目录。
  • [Icons]:创建开始菜单和桌面快捷方式。

编译脚本生成安装程序

  • 使用Inno Setup打开脚本,点击 Build > Compile,生成的 MyApp_Setup.exe 位于 Output 目录。

步骤3:处理文件路径问题

在代码中动态定位文件路径,确保开发与打包后环境兼容:

import sys
import os

def get_resource_path(relative_path):
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS  # PyInstaller临时解压目录(单文件模式)
    else:
        base_path = os.path.dirname(os.path.abspath(__file__))
    return os.path.join(base_path, relative_path)

# 示例:访问配置文件
config_path = get_resource_path(os.path.join('data', 'config.ini'))

步骤4:测试安装程序

  1. 运行生成的安装程序,选择不同路径安装。
  2. 检查安装目录文件是否完整。
  3. 启动应用,确认所有功能正常。

可选优化

  • 依赖检测:若应用需VC++运行库,可在Inno Setup中添加检测安装逻辑。
  • 文件权限:如需修改配置文件,考虑将用户数据存于 %APPDATA%
  • 版本更新:在安装脚本中处理旧版本卸载。

最终结果

用户将获得一个标准的Windows安装程序(.exe),可自定义安装路径并自动创建快捷方式,所有依赖文件将被正确部署。

结束语

Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

以上就是将Python开发的Window应用打包成exe的流程步骤的详细内容,更多关于Python Window应用打包成exe的资料请关注脚本之家其它相关文章!

相关文章

  • python中的Elasticsearch操作汇总

    python中的Elasticsearch操作汇总

    这篇文章主要介绍了python中的Elasticsearch操作汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 用Python实现读写锁的示例代码

    用Python实现读写锁的示例代码

    这篇文章主要介绍了用Python实现读写锁的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Python利用openpyxl库遍历Sheet的实例

    Python利用openpyxl库遍历Sheet的实例

    今天小编就为大家带来一篇Python利用openpyxl库遍历Sheet的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python检查JSON文件语法的多种实现方法

    Python检查JSON文件语法的多种实现方法

    本文介绍了在Python中检查JSON文件语法的多种方法,包括使用标准库json、jsonschema进行结构验证、使用json.tool命令行工具以及编写完整的验证函数,推荐使用内置的json模块,因为它简单、可靠且无需额外依赖,对于复杂项目,可以结合jsonschema进行结构验证
    2025-12-12
  • Pyqt QImage 与 np array 转换方法

    Pyqt QImage 与 np array 转换方法

    今天小编就为大家分享一篇Pyqt QImage 与 np array 转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python完成毫秒级抢淘宝大单功能

    Python完成毫秒级抢淘宝大单功能

    在本篇文章里小编给大家分享了关于Python完成毫秒级抢淘宝大单功能以及实例代码,需要的朋友们参考下。
    2019-06-06
  • Python设计模式创建型原型模式

    Python设计模式创建型原型模式

    这篇文章主要介绍了Python原型模式,原型模式即Prototype Pattern,指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,下面我们就来看具体的介绍内容吧,希望对你的学习有所帮助
    2022-02-02
  • Python重复文件批量整理工具的设计与实现

    Python重复文件批量整理工具的设计与实现

    这篇文章主要为大家详细介绍了如何通关Python编写一个重复文件批量整理工具,可以在文件夹内对文件进行去重和分类存储,有需要的可以了解下
    2025-02-02
  • 对于Python的Django框架部署的一些建议

    对于Python的Django框架部署的一些建议

    这篇文章主要介绍了对于Python的Django框架部署的一些建议,包括项目文件的布局等,需要的朋友可以参考下
    2015-04-04
  • python实现打印类的所有属性和方法

    python实现打印类的所有属性和方法

    这篇文章主要介绍了python实现打印类的所有属性和方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05

最新评论