Python Flask项目打包为EXE及Windows安装包完整指南

程一诺
程一诺
发布时间:2026-10-15| 5人浏览过
原创

本文详细讲解如何将Python Flask项目打包为独立的EXE文件,并使用NSIS制作Windows安装包。内容涵盖PyInstaller参数详解、静态资源处理、图标设置以及NSIS脚本配置,帮助开发者完成从代码到可分发软件的完整流程。

一、打包Flask项目

1.1 创建Flask应用

2.2 安装PyInstaller


pip install pyinstaller
可选参数 示例 说明
-F pyinstaller -F demo.py 只在dist文件夹中生成一个程序demo.exe文件,适用于一个模块没有多依赖.py文件
-D pyinstaller -D demo.py 默认选项,除了主程序demo.exe外,还会在在dist文件夹中生成很多依赖文件,推荐使用这个
-c pyinstaller -c demo.py 默认选项,只对windows有效,使用控制台
-w pyinstaller -w demo.py 只对windows有效,不使用控制台
-p pyinstaller -p D:\project\demo.py 设置导入路径
-i pyinstaller -i D:\demo.ico demo.py 给生成的demo.exe文件设置一个自定义的图标

2.3 进入项目目录并执行打包命令


# run.py 是flask项目的执行文件,app.run所在py文件
	pyinstaller -D run.py    
	
# 可以看到项目路径下有
	-build文件夹
	-dist文件夹:重要,下有run文件夹(py文件名字),有个run.exe(py文件的名字)
	-run.spec
  
# 把pro_flask这个文件夹,拷贝到dist下的run文件夹
	-因为flask项目有静态文件和html文件,如果不拷贝过去,静态文件和html文件会找不到
	-我们为了隐藏代码,可以把所有python的代码都删除,只留static和templates文件夹

2.4 运行生成的EXE文件进行测试


# 到dist/run文件夹下,双击 run.exe,启动
如下图
# 浏览器访问
如下图

二、使用NSIS将文件夹打包为Windows安装包

2.1 下载安装NSIS


nsis:NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序,它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的
  
利用 nsis 把刚刚的dist的run文件夹打包成windows的安装包

2.2 将dist文件夹下的run文件夹压缩为ZIP格式

2.3 使用NSIS将压缩包制作成Windows安装程序

总结

至此,关于将Python项目打包为EXE及安装包的教程已结束。如需了解更多Python打包EXE及安装包的相关内容,请查阅本站历史文章或继续浏览后续文章,感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。