flask pyinstaller打包exe,出现module not found问题

article/2025/8/5 3:50:40

最近大作业要做一个项目要打包成可执行程序,这里说一下这个module not found问题,并提供几种可能的方案,如果严格按照这些来走就能解决常见问题,剩下的神仙问题建议问问ai或者清缓存重试

首先说一下目录问题,这应该是包括我(打包app.py)在内的大多数人遇见该报错问题的原因,提出两个原则:

1.依赖的文件/导入的库都放在app.py根目录backend下,因为打包的时候默认只会搜索这个路径,当然也有方法加入更深层的目录,但是不在这个讨论范围

2.根目录backend没有__init__,其他导入文件夹eg. my_utils有__init__文件,这种时候使用 from my_utils.entity import xxx,如果backend也有__init__,那么就应该使用 from backend.my_utils.entity import xxx 了

前置知识: python的模块的标准写法是文件夹下面有一个__init__.py文件,空文件也行,但是要有,这时IDE会把源文件夹图标显示成带有一个点的文件夹图标,表示识别为模块文件夹,

但是这对是IDE无所谓的,使用from my_utils.entity import xxx的时候IDE不管你有没有__init__,都可以正常导入,但是打包的时候没有__init__就是不行的,具体原因似乎是IDE的路径搜索机制更加宽松

图1 正确的一种目录展示

附: 使用共享文件夹时,简单的做法直接使用就行--add-data指定参数就行,但是如果要能读能写,建议使用  base_path = os.path.dirname(sys.executable) ,这是生成的exe文件夹,举个例子

if getattr(sys, 'frozen', False): #打包后会有这个frozen属性,IDE里面运行是没有的base_path = os.path.dirname(sys.executable)  # 打包后临时路径
else:base_path = os.path.dirname(os.path.abspath(__file__))  # 开发环境路径static_folder_path = os.path.join(base_path, 'your_folder_name')


http://www.hkcw.cn/article/FAxJRgNPWP.shtml

相关文章

基于SpringBoot+Redis实现RabbitMQ幂等性设计,解决MQ重复消费问题

一、实现方案 本实验方案参考「RabbitMQ消息可靠性深度解析|从零构建高可靠消息系统的实战指南」 1、业务层幂等处理: 每个消息携带一个全局唯一ID,在业务处理过程中,首先检查这个ID是否已经被处理过。例如,将已处理消…

性能优化 - 案例篇:数据一致性

文章目录 Pre引言1. 分布式缓存概念2. Redis 与 Memcached 区别概览3. Spring Boot 中使用 Redis3.1 引入依赖与常用客户端3.2 RedisTemplate 的基本用法3.3 Spring Cache 注解式缓存 4. 秒杀业务简介及挑战5. Lua 脚本实现原子库存扣减5.1 准备阶段:数据预加载5.2 …

【深度学习】 19. 生成模型:Diffusion Models

Diffusion Models Diffusion Models 简介 Diffusion 模型是一类通过逐步添加噪声并再逆向还原的方式进行图像生成的深度生成模型。其基本流程包括: 前向过程(Forward Process):将真实图像逐步加噪,最终变为高斯噪声…

【速通RAG实战:进阶】22、RAG 技术前沿探索:GraphRAG 等 13 种技术详解与应用场景

一、RAG技术的演进脉络与前沿分类 (一)从基础RAG到前沿创新的技术跃迁 传统RAG(检索增强生成)通过“检索-生成”两阶段解决LLM的知识时效性和准确性问题,但在复杂推理、多模态融合、成本控制等场景面临瓶颈。前沿RAG技术围绕检索精度、推理深度、生成质量、系统效率四大…

美业新动能:智能体如何赋能行业“维护”升级(3/6)

摘要:美业行业蓬勃发展,但竞争激烈、客户要求提高等挑战并存。智能体技术应运而生,它融合机器学习、自然语言处理和计算机视觉等技术,实现精准营销、个性化服务,优化客户关系、设备和供应链维护。本文探讨智能体在美业…

RAGflow详解及实战指南

目录 前言 一、RAGflow核心技术解析 1. 技术原理:检索与生成的协同进化 2. 架构设计:分层模块化与高扩展性 3. 核心优势:精准、高效、安全 二、RAGflow实战应用场景 1. 企业知识库搭建 2. 智能客服系统 3. 投资分析报告生成 4. 制造…

C# winform教程(二)

一、基础控件 常用的基础控件主要有按钮,文本,文本输入,组,进度条,等等。 基础控件 名称含义详细用法Button按钮checkbox多选按钮Combobox下拉选择groupbox组控件label标签,显示文字panel控件集合&#xf…

Altium Disigner(16.1)学习-原理图绘制以及必要操作

一、下载软件 通过网盘分享的文件:Altium Designer 16.zip 链接: https://pan.baidu.com/s/1uBHeoJJ-iA2tXw3NRjCcdA?pwd7c3h 提取码: 7c3h 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v5的分享 二、建立工程 添加proje…

DAY 18 推断聚类后簇的类型

目录 DAY 18 推断聚类后簇的类型1.推断簇含义的2个思路:先选特征和后选特征2.通过可视化图形借助ai定义簇的含义3.科研逻辑闭环:通过精度判断特征工程价值作业:参考示例代码对心脏病数据集采取类似操作,并且评估特征工程后模型效果有无提升。…

常见的PLC浮点数字节序转换方法

变量的字节序 在 PLC 中,寄存器的长度通常为 16 bit,常见的数据类型有 16bit、32bit长度的 对于 32 bit 长度的数据,比如浮点型(在西门子、Codesys 中称为 REAL 型),由于长度较长,在不同平台、…

【Day42】

DAY 42 Grad-CAM与Hook函数 知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 作业:理解下今天的代码即可 """ Day 42: Grad-CAM与Hook函数本节主要内容: 1. 回调函数(Callback)和lambda函数- 回调函数是作为参…

各种乱码问题解决措施

1.乱码问题原因 1.数据的编码和解码使用的不是同一个字符集 编码就是我们能看懂的数据转换为计算机能够识别的二进制编码 解码就是将存在计算机里面的二进制编码的文件转化为我们能够识别的字符等内容。 2.使用了不支持某个语言文字的字符集。 1,1html文件乱码 在<meta c…

c++ 异常处理

测试代码&#xff1a; #include <exception>void testException() { // test exceptionclass MyException : public exception {public:using std::exception::exception; // 关键&#xff1a;继承父类所有构造函数};struct Divide {int operator() (int a, int b) cons…

yolo个人深入理解

卷积层的理解,通过云端服务器训练模型,模型构建的重要性,针对极低像素的处理,模型训练召回率提高技巧,卷积层2,4,8,16,32的小模型与大模型的理解 一.关于backbone,neck,head深入理解 1,backbone的主要组成部分是sppf和conv,这是backbone的核心,其中yolov5和yolov8…

Git基本操作

目录 1. 创建Git本地仓库 2. 配置Git 3. 认识工作区、暂存区、版本库 4. 添加文件 -- 场景一 5. 查看.git文件 6. 添加文件 -- 场景二 7. 修改文件 8. 版本回退 9. 撤销修改 9.1 情况一&#xff1a;对于工作区的代码&#xff0c;还没有add 9.2 情况二&#xff1a;已…

《中国棒垒球》注册青少年运动员需要什么条件·棒球1号位

青少年注册棒球/垒球运动员&#xff1a; 基础条件 | Basic Requirements 年龄范围 通常6-18岁&#xff08;按U8/U10/U12/U15/U18分组&#xff09; Typically 6-18 years old (grouped as U8/U10/U12/U15/U18) 健康证明 需提交体检报告&#xff0c;重点关注心肺功能与运动损…

华为深度学习面试手撕题:手写nn.Conv2d()函数

题目 只允许利用numpy包&#xff0c;实现Pytorch二维卷积函数nn.Conv2d() 解答 此代码考察二维卷积的概念&#xff0c;详见&#xff1a; 6.2. 图像卷积 — 动手学深度学习 2.0.0 documentation 6.3. 填充和步幅 — 动手学深度学习 2.0.0 documentation 6.4. 多输入多输出通…

MMR 最大边际相关性详解

最大边际相关性&#xff08;MMR&#xff0c;max_marginal_relevance_search&#xff09;的基本思想是同时考量查询与文档的 相关度&#xff0c;以及文档之间的 相似度。相关度 确保返回结果对查询高度相关&#xff0c;相似度 则鼓励不同语义的文档被包含进结果集。具体来说&…

美业+智能体,解锁行业转化新密码(2/6)

摘要&#xff1a;中国美业市场近年蓬勃发展&#xff0c;规模持续扩大&#xff0c;预计不久将突破万亿级别&#xff0c;但同时也面临着诸多挑战&#xff0c;如获客成本攀升、服务质量不稳定、难以满足消费者多元化个性化需求等。智能体技术的出现为美业带来了新的发展机遇&#…

Mybatis-Plus 学习

Mybatis-Plus 简介 官网&#xff1a;https://baomidou.com/ github 地址&#xff1a;https://github.com/baomidou/mybatis-plus 什么是 Mybatis-Plus MyBatis-Plus&#xff08;简称 MP&#xff09;是 MyBatis 的增强工具库&#xff0c;旨在简化开发流程&#xff0c;减少样…