Skip to content

Instantly share code, notes, and snippets.

@defulmere
Last active September 10, 2025 20:13
Show Gist options
  • Select an option

  • Save defulmere/8b9695e415a44271061cc8e272f3c300 to your computer and use it in GitHub Desktop.

Select an option

Save defulmere/8b9695e415a44271061cc8e272f3c300 to your computer and use it in GitHub Desktop.
How to override an old sqlite3 module with pysqlite3 in django settings.py
# ⚠️ USE AT YOUR OWN RISK
# first: pip install pysqlite3-binary
# then in settings.py:
# these three lines swap the stdlib sqlite3 lib with the pysqlite3 package
__import__('pysqlite3')
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
@vedprakashnautiyal
Copy link

Hey, so I was able to bypass this issue by just adding pysqlite3-binary to requirements.txt

Did not have to add any versioning, or other code.

Hey, were you deploy on the cloud, I wanted to deploy on streamlit, but error persist even after adding it to the requirement file

@blacknred0
Copy link

same problem here in streamlit community cloud

@Sagor0078
Copy link

raise RuntimeError(
RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.

how to solve this issue?

@blacknred0
Copy link

It seems like they know the issue. It just matters on them upgrading the Debian OS from bullseye to bookworm https://discuss.streamlit.io/t/debian-11-eol/80690/7

@aiqbal77
Copy link

aiqbal77 commented Nov 9, 2024

This seemed to work for me:

  1. Download the Latest SQLite Source:
    wget https://www.sqlite.org/2023/sqlite-autoconf-3430100.tar.gz

  2. Extract the Downloaded File:
    tar -xvf sqlite-autoconf-3430100.tar.gz
    cd sqlite-autoconf-3430100

  3. Build and Install SQLite:
    ./configure
    make
    sudo make install

  4. Verify the Installation:
    After installation, confirm that the new version is available:
    sqlite3 --version

  5. Verify in Python:
    Ensure that Python picks up the updated SQLite version:

python -c "import sqlite3; print(sqlite3.sqlite_version)"

@sdubal
Copy link

sdubal commented Nov 14, 2024

thanks, worked for me.

@JGallegoPerez
Copy link

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

Worked perfectly for me too.

@AlbertoMQ
Copy link

This gives the error
NameError: name 'sqlite3' is not defined

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

@subhammoda
Copy link

Hi, I tried the solutions above, I have pysqlite3-binary in requirements.txt. I have added the following to the streamlit_app.py code. I am on Python version 3.10.15. I have sqlite 3.43.2 available on my mac.

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

But the following gives me the error of "No module named 'pysqlite3'"

Running pip install pysqlite3 is unsuccessful, giving the error "ERROR: Failed to build installable wheels for some pyproject.toml based projects (pysqlite3)"

Can someone help. I face the issue when trying to deploy the app on streamlit. It worked perfectly for me on the local.

@gargi-biswas-20
Copy link

thanks for the solution

This was helpful, worked for me as well !
I was getting following error while trying to run chromadb example code using my python3.10.8 venv3.10: File "~/venv3.10/lib/python3.10/site-packages/chromadb/__init__.py", line 36, in <module> raise RuntimeError( RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0.
I executed following steps to resolve this error:

  1. Inside my python3.10.8's virtual environment i.e. venv3.10, installed pysqlite3-binary using command: pip install pysqlite3-binary
  2. Added these 3 lines in venv3.10/lib/python3.10/site-packages/chromadb/__init__.py at the beginning:
__import__('pysqlite3')
import sys
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')

worked like magic! Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment