当前位置: 首页 > news >正文

即开即用,封装 Flask 项目为 exe 文件实操步骤

见字如面,朋友们!

嗨,这里是 AIGC 创意人_竹相左边!

正如你们所知,我正在通过 AI 自学软硬件工程师,目标是手搓一台可回收火箭玩具!

最近,我被《流浪地球 2》中马兆的那句“没有硬件支撑,你破解个屁”深深打动——硬件和软件的结合,才是硬核的灵魂!

今天,我想和大家分享一个实用技巧:如何将我的 Flask 项目封装成一个即开即用的 .exe 文件,让没有编程知识的同事也能轻松使用。

跟着我一步步操作,打造属于我们的“软件硬件之光”吧!

image.png

一、为什么要封装为 .exe?

在开发 Flask 项目时,我们通常需要在 Python 环境中运行,依赖如 Flask、Pillow 等库。对于编程小白或非技术同事来说,配置环境、安装依赖简直是“天坑”。封装成 .exe 文件的好处在于:

  • 无需安装 Python:所有依赖打包到一起,双击运行即可。
  • 跨平台友好:Windows 用户直接使用(Mac/Linux 可考虑其他工具)。
  • 即开即用:就像火箭点火,启动即飞!

二、准备工作与工具

在开始之前,确认你的开发环境已准备好:

  • Python 环境:确保已安装 Python 3.x(我用的是 3.9,稳定得很!)。
  • PyInstaller:安装命令:pip install pyinstaller,这是我们封装的“火箭引擎”。
  • 项目文件:包括 app.py、routes、templates、static 和 utils 文件夹。

三、整代码以支持打包

我们需要修改 app.py,添加以下功能:

  • 检测是否以打包形式运行(PyInstaller 会在运行时设置 sys._MEIPASS)。
  • 正确设置 templates 和 static 文件夹路径。
  • 启动程序后自动打开浏览器。

    image.png

四、准备打包环境

  • 确保 PyInstaller 已安装:在你的开发环境中,安装 PyInstaller:

    pip install pyinstaller
     
  • 生成 requirements.txt:确保所有依赖都被记录,运行以下命令生成 requirements.txt:

    pip freeze > requirements.txt
     
  • 项目结构:确认你的项目目录结构如下:

五、使用 PyInstaller 打包

  • 进入项目目录
    cd D:\20250219\ai_work\jpg2pdf
  • 运行 PyInstaller 打包命令: 使用 --onefile 选项打包成单个 .exe 文件,同时使用 --add-data 包含 templates 和 static 文件夹。

    pyinstaller --onefile --add-data "templates;templates" --add-data "static;static" app.py
     
  • Windows 系统下,路径分隔符使用 ;。
  • 打包结果: 打包完成后,dist 文件夹中会生成 app.exe。

    image.png

六:测试打包后的 .exe

  • 将 app.exe 复制到桌面: 复制 dist\app.exe 到你的桌面或其他测试目录。
  • 双击运行 app.exe
  • 程序会启动 Flask 服务器。
  • 默认会自动打开浏览器,访问 http://127.0.0.1:5000。

七、小贴士与优化

  • 添加图标:用 --icon app.ico 自定义 .exe 图标。
  • 隐藏命令行:加 --noconsole 让界面更友好(但保留调试用)。
  • 问题排查:如果运行失败,检查是否有缺少的 DLL(如 VCRUNTIME140.dll),建议同事安装 Microsoft Visual C++ Redistributable。

相关文章:

  • Os 库报错指南 路径处理常见陷阱
  • 在 Sheel 中运行 Spark:开启高效数据处理之旅
  • Python 中的数据结构介绍
  • Spark,所用几个网页地址
  • 巧记英语四级单词 Unit7-下【晓艳老师版】
  • pcl对应点聚类算法
  • 音视频之H.265/HEVC编解码并处理
  • 基于SpringBoot网上书店的设计与实现
  • MySQL 主从配置超详细教程
  • 行业黑化.新平面
  • C#经典算法面试题
  • LeetCode 解题思路 45(Hot 100)
  • 卷积神经网络的简单实战项目
  • C++ string的使用
  • 隔离端口配置
  • ArcGIS Pro图斑属性自动联动更新-在线卫星底图图斑采集
  • C语言结构体内存对齐使用场景
  • 【区块链】Uniswap之滑点(Slippage)
  • R8周:RNN实现阿尔茨海默病诊断
  • 软件代码签名证书SSL如何选择?
  • 万里云端遇见上博--搭乘“上博号”主题飞机体验记
  • 潘功胜发布会答问五大要点:除了降准降息,这些政策“含金量”也很高
  • 碧桂园服务:拟向杨惠妍全资持有的公司提供10亿元贷款,借款将转借给碧桂园用作保交楼
  • 五月A股怎么买?券商金股电子权重第一,格力电器最热
  • 溢价率19.48%,民企番禺置业3.07亿元竞得广州番禺融媒体中心北侧地块
  • 中年人多活动有助预防阿尔茨海默病