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

打包python脚本(flask、jinja2)为exe文件

20240803

概述

在我很早时候学习python的时候,就利用过某个工具将其打包为exe文件,然后在没有python环境的机器上运行,这样可以减少安装python环境和各种库的过程。

最近在开发一个在虚拟机上运行的程序的时候就遇到了打包一些环境的问题,主要是由于flask这个应用的问题。

问题描述

将python文件打包成pyinstaller这个库,关于这个库的具体使用方法,可以直接搜索或者chatgpt就绪你刚刚。

在打包flask应用的时候,因为包含一些静态文件,例如html模版,或者图片等,此时就会报错找不到相应的文件,特别是使用了jinja2这个模版库,具体报错可见[1]。

在[1]中,解决这个问题的方法也比较简单,直接就在打包的过程中,加入参数,例如:

pyinstaller -F a.py --add-data 'templates:templates' \--add-data 'static:static' \--add-data 'images:images' \-p /usr/local/lib/python3.10/dist-packages/

因为一开始搜索解决方案的时候,也是结合了打包和jinja这两个关键词,所以得到的答案都是这种,增加参数或者修改配置文件的。但实际上,这个问题并没有完全解决我的问题。

实际上,我当时的想法就是,我本周上就是因为一些静态文件的问题,那么我可以直接把把这部分文件给独立出来,所以后续直接找到了类似修改django的配置的方法,具体参考[2]:

app = Flask(__name__,static_folder= os.getcwd() + '/static',template_folder=os.getcwd() + '/templates')  # 创建Flask对象并自定义静态文件的路径,os.getcwd() 方法是获取当前exe文件包所在的父目录路径

这种方法就可以直接把路径这些的问题给搞定了。

参考

[1]ubuntu22 flask项目 pyinstaller打包后运行报错: jinja2.exceptions.TemplateNotFound: index.html 的一种解决方案
[2]Python Flask使用PyInstaller打包成单独的exe可执行文件后图片无法正常显示的问题及解决方法

http://www.lryc.cn/news/414432.html

相关文章:

  • 嵌入式初学-C语言-练习三
  • 最新版Sonible Plugins Bundle v2024 winmac,简单智能,持续更新长期有效
  • J032_实现简易版的B/S架构
  • 【前端面试】五、框架
  • C语言 | Leetcode C语言题解之第316题去除重复字母
  • 本地部署 Llama-3-EvoVLM-JP-v2
  • Evaluating the Generation Capabilities of Large Chinese Language Models
  • YOLOv8添加注意力模块并测试和训练
  • 「Unity3D」自动布局LayoutElement、ContentSizeFitter、AspectRatioFitter、GridLayoutGroup
  • 【Golang 面试 - 进阶题】每日 3 题(十六)
  • Redis2
  • C语言--函数
  • Shell 编程的高级技巧和实战应用
  • VMWare虚拟机如何连接U盘
  • 【学习笔记】后缀自动机(SAM)
  • Godot的节点与场景
  • C++ 学习(2) ---- std::cout 格式化输出
  • 前端拿不到Long类型成员变量,用@JsonSerialize(using = ToStringSerializer.class)序列化一下
  • JWT登录校验流程
  • yarn安装和部署
  • Visual Studio的安装教程与使用方法
  • 一键换装软件哪个好?6个换装工具让你秒变穿搭达人
  • 【EtherCAT】Windows+Visual Studio配置SOEM主站——源码配置
  • GPTPDF深度解析:开源文档处理技术全攻略
  • 网络学习:应用层DNS域名解析协议
  • 7.怎么配置一个axios来拦截前后端请求
  • Day17_1--AJAX学习之GET/POST传参
  • golang国内proxy设置
  • 全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
  • 【mongodb】mongodb副本集的搭建和使用