使用pyinstaller对gradio和chromadb进行打包

解决gradio和chromadb的打包问题

背景

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

问题

gradio和gradio_client模块

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

bash 复制代码
No such file or directory: gradio_client\types.json

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

还有一类报错:

bash 复制代码
[Errno 2] No such file or directory: gradio\blocks_events.pyc

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

chromadb模块

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

bash 复制代码
ModuleNotFoundError: No module named'chromadb.telemetry.product.posthog'

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

解决

针对这两类问题,解决方案分两步:

1.输出.spec文件

bash 复制代码
pyinstaller --collect-data=gradio_client --collect-data=gradio --collect-data=chromadb -F rag_demo.py

2.在生成的rag_demo.spec文件中

Analysis部分添加

bash 复制代码
module_collection_mode={ 'gradio': 'py',}

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

相关推荐
Blossom.11811 分钟前
把AI“撒”进农田:基于极值量化与状态机的1KB边缘灌溉决策树
人工智能·python·深度学习·算法·目标检测·决策树·机器学习
Red Car11 分钟前
如何向文件夹内所有PDF增加水印
python·pdf
Q_Q51100828521 分钟前
python+uniapp基于微信小程序团购系统
spring boot·python·微信小程序·django·uni-app·node.js·php
java1234_小锋40 分钟前
TensorFlow2 Python深度学习 - 循环神经网络(LSTM)示例
python·rnn·深度学习·tensorflow2
测试老哥1 小时前
Postman环境变量设置全攻略
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman
惜月_treasure2 小时前
Text2SQL与工作流实现:让数据库查询变得轻松又高效
数据库·人工智能·python
码猩3 小时前
获取dm音视频文案
python
给我起把狙3 小时前
Django与Tornado框架深度对比:从MVCMTV到高并发架构设计
python·django·tornado
Hello.Reader3 小时前
Flink DataStream「全分区窗口处理」mapPartition / sortPartition / aggregate / reduce
大数据·python·flink
网安INF3 小时前
Python核心数据结构与函数编程
数据结构·windows·python·网络安全