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

使用pyinstaller对gradio和chromadb进行打包

解决gradio和chromadb的打包问题

  • 背景
  • 问题
    • gradio和gradio_client模块
    • chromadb模块
  • 解决

背景

python项目里包含了gradio和chromadb模块,使用pyinstaller后总有模块找不到,这里分享一个办法一招解决。

问题

gradio和gradio_client模块

gradio在被打进exe后执行报错:

No such file or directory: gradio_client\types.json

这个主要原因是gradio和gradio_client相关模块没有被打进去。

还有一类报错:

[Errno 2] No such file or directory: gradio\blocks_events.pyc

这是因为在执行时默认去查找pyc文件,找不到报错。

chromadb模块

chromadb在被打进exe后执行报错:

ModuleNotFoundError: No module named'chromadb.telemetry.product.posthog'

这主要是因为chromadb的相关子模块没有被包进去。

解决

针对这两类问题,解决方案分两步:
1.输出.spec文件

pyinstaller --collect-data=gradio_client --collect-data=gradio --collect-data=chromadb -F rag_demo.py

2.在生成的rag_demo.spec文件中
Analysis部分添加

module_collection_mode={ 'gradio': 'py',}

因为我们希望 gradio 包的 .py 文件以某种特定方式被收集,比如直接将 .py 文件保留在打包后的文件结构中,而不是被编译成 .pyc 文件或者被压缩进 PYZ 文件里。


http://www.kler.cn/a/557872.html

相关文章:

  • AI大模型-提示工程学习笔记13—自动提示工程师 (Automatic Prompt Engineer)
  • 数据结构、算法和STL简介 【复习笔记】
  • C++/JavaScript ⭐算法OJ⭐下一个排列
  • SAP任命Simon Davies为亚太区总裁,领导重组后的亚太地区业务
  • 第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析
  • 后渗透——Docker容器逃逸
  • 数据结构-图-找出星型图的中心节点
  • 深度学习驱动下的字符识别:挑战与创新
  • 将 Vue 项目打包后部署到 Spring Boot 项目中的全面指南
  • C# 从基础神经元到实现在0~9数字识别
  • 蓝耘智算平台携手 DeepSeek,开启 AI 超算新纪元
  • tauri2实现监听记住窗口大小变化,重启回复之前的窗口大小
  • Git 工作流程
  • 广东双9研0,目标腾讯,读研三年如何规划学习?
  • java 环境 redis信创后整合jedis
  • 视频大小怎么计算?视频码率是什么,构成视频清晰度的核心要素!
  • Pytorch实现之结合SE注意力和多种损失的特征金字塔架构GAN的图像去模糊方法
  • js如何直接下载文件流
  • #渗透测试#批量漏洞挖掘#Progress Software Flowmon命令执行漏洞(CVE-2024-2389)
  • STM32MP157A单片机驱动--控制拓展版的灯实现流水效果