python streamlit:您的系统具有不受支持的sqlite3版本,色度要求sqlite3 >= 3.35.0

rmbxnbpk  于 2023-09-29  发布在  Python
关注(0)|答案(2)|浏览(319)

我之前在Streamlit Cloud上部署了一个使用chromadb的应用。
这个应用程序在过去运行得很好。然而,今天我遇到了一个新的错误(如标题所示),应用程序已经停止运行。
我尝试基于solutions from the Streamlit forum进行故障排除,并按顺序执行了以下步骤:
1.通过添加pysqlite3-binary更新了requirements.txt文件。
1.在app.py的顶部添加了以下三行代码:

__import__('pysqlite3')
import sys

sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')

重启我的应用后,我发现了新的错误:

ModuleNotFoundError: No module named 'pysqlite3'
Traceback:
File "/home/adminuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script
    exec(code, module.__dict__)
File "/mount/src/docgpt-streamlit/app.py", line 2, in <module>
    import pysqlite3

随后,我再次尝试将pysqlite3添加到requirements.txt,但错误仍然存在。
根据管理应用日志,我观察到Streamlit没有执行re-pip install操作。

这会导致pysqlite错误吗?如果是这样,我如何正确地启用Streamlit应用程序,以自动pip安装由于我的更新requirements.txt

lmyy7pcs

lmyy7pcs1#

现在我解决了这个问题。
即使您重新启动,streamlit应用程序也不会重新安装模块。
因此,我部署应用程序:
1.删除应用程序。

  1. ReNew应用程序。
    然后模块将重新安装。
ahy6op9u

ahy6op9u2#

我在Streamlit Cloud上遇到了类似的情况,但不是在Docker容器上。我SSHed了,虽然我的python版本很好,但由于某种原因,它运行的是一个较旧的sqlite:

Python 3.11.3

>>> import sqlite3
>>> sqlite3.version
'2.6.0'

原来我运行的是一个旧版本的debian(bullseye),Chroma的故障排除文档建议不要这样做,所以我把镜像升级到python:3.11.5-bookworm,解决了这个问题。

相关问题