当前位置: 首页 > 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可执行文件后图片无法正常显示的问题及解决方法

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Unity】RPG2D龙城纷争(十九)流程与UI界面(终章)
  • Docker安装Nginx
  • fastapi教程(六):依赖注入
  • SpringSecurity+Mysql数据库实现用户安全登录认证
  • MySQL入门学习-运维与架构.主从复制
  • Shell 编程的高级技巧和实战应用
  • 《雅思口语真经总纲1.0》话题实战训练笔记part1——5. Bus or taxi
  • 等待唤醒机制两种实现方法-阻塞队列
  • 【OpenCV C++20 学习笔记】图像缩放-高斯金字塔
  • Stable Diffusion绘画 | 文生图-高分辨率修复-Hires.fix
  • 图的同态Graph Homomorphism与同构Graph Isomorphism
  • ESP IDF 4.4工程迁移到IDF5最新注意事项
  • 从核心到边界:六边形、洋葱与COLA架构的深度解析
  • uni-app中使用支付宝扫码插件并且在真机调试时使用(详细教程)
  • 3.11.样式迁移
  • @jsonView过滤属性
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • android 一些 utils
  • canvas 五子棋游戏
  • ES学习笔记(12)--Symbol
  • exif信息对照
  • gf框架之分页模块(五) - 自定义分页
  • Java 23种设计模式 之单例模式 7种实现方式
  • node-glob通配符
  • PHP的Ev教程三(Periodic watcher)
  • Redis中的lru算法实现
  • STAR法则
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 软件开发学习的5大技巧,你知道吗?
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 我的zsh配置, 2019最新方案
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • UI设计初学者应该如何入门?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #微信小程序(布局、渲染层基础知识)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转) Android中ViewStub组件使用
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .a文件和.so文件
  • .Mobi域名介绍
  • .Net 4.0并行库实用性演练
  • .NET Core引入性能分析引导优化
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net6+aspose.words导出word并转pdf
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • /etc/fstab 只读无法修改的解决办法