pysqlite3
DB-API 2.0 interface for Sqlite 3.x
What it is and what it does
pysqlite3 is a repackaging of Python's sqlite3 module as a standalone, installable library. It lets you decouple your SQLite version from what ships with Python, which is useful when you need a newer SQLite release, specific extensions, or a self-contained binary that works across environments. The package offers precompiled wheels for multiple Python versions on macOS (ARM), Linux, Windows, and musl-based systems, eliminating the need to compile from source in most cases.
The library implements the standard DB-API 2.0 interface, so code written for the built-in sqlite3 module works unchanged. It adds features like user-defined window functions (requires SQLite >= 3.25), VFS and flags support for connection tuning, incremental BLOB I/O, and the native SQLite backup API. You can also build it statically linked against a specific SQLite version by providing the amalgamation source files.
Use it for:
- Use it when your application requires a SQLite version newer than what ships with your Python release.
- Use it to deploy a self-contained application that doesn't depend on system SQLite libraries being present.
- Use it to enable SQLite extensions or features not available in the standard library module.
- Use it in containerized or embedded environments where you need reproducible SQLite behavior across platforms.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pysqlite3 packages SQLite as a standalone Python module, letting you use a specific SQLite version independently of the system library or Python's bundled sqlite3.
Yes, if you need a specific SQLite version or features beyond the standard library. The precompiled wheels make installation straightforward on common platforms. The MIT license is permissive, there are no known vulnerabilities, and it's a drop-in replacement for sqlite3. Install only if you have a concrete reason—the standard library module is sufficient for most applications.
Install
pysqlite3 on PyPI
pip
pip install pysqlite3uv
uv add pysqlite3poetry
poetry add pysqlite3Installing pysqlite3
Before you install
Medium install friction due to compiled wheels for multiple Python versions and platforms; the package is aging (221 days since last release) but remains in the top-15000 tier with no known vulnerabilities.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include the license notice in distributions.
Quickstart
pip install pysqlite3
import pysqlite3.dbapi2 as sqlite3
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
cursor.execute('SELECT 1')
print(cursor.fetchone())
Requires Python 3.9 or later; building from source requires a C compiler and SQLite development headers if not using the precompiled wheel.
Verify before relying
- Whether the aging maintenance status (221 days since release) signals reduced active development or stable maturity.
- Performance characteristics compared to the standard library sqlite3 module.
- Compatibility guarantees with specific SQLite versions when using the amalgamation build option.
- Which Python versions are covered by the precompiled wheels beyond what the classifiers indicate.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | aging — 221 days since the last release |
| First released | |
| Downloads | 461,334/month — #6,534 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pysqlite3-0.6.0-cp310-cp310-macosx_11_0_arm64.whl; pysqlite3-0.6.0-cp310-cp310-manylinux_2_28_x86_64.whl; pysqlite3-0.6.0-cp310-cp310-musllinux_1_2_x86_64.whl; pysqlite3-0.6.0-cp310-cp310-win32.whl; pysqlite3-0.6.0-cp310-cp310-win_amd64.whl; pysqlite3-0.6.0-cp311-cp311-macosx_11_0_arm64.whl; pysqlite3-0.6.0-cp311-cp311-manylinux_2_28_x86_64.whl; pysqlite3-0.6.0-cp311-cp311-musllinux_1_2_x86_64.whl; pysqlite3-0.6.0-cp311-cp311-win32.whl; pysqlite3-0.6.0-cp311-cp311-win_amd64.whl; pysqlite3-0.6.0-cp312-cp312-macosx_11_0_arm64.whl; pysqlite3-0.6.0-cp312-cp312-manylinux_2_28_x86_64.whl; pysqlite3-0.6.0-cp312-cp312-musllinux_1_2_x86_64.whl; pysqlite3-0.6.0-cp312-cp312-win32.whl; pysqlite3-0.6.0-cp312-cp312-win_amd64.whl; pysqlite3-0.6.0-cp313-cp313-macosx_11_0_arm64.whl; pysqlite3-0.6.0-cp313-cp313-manylinux_2_28_x86_64.whl; pysqlite3-0.6.0-cp313-cp313-musllinux_1_2_x86_64.whl; pysqlite3-0.6.0-cp313-cp313-win32.whl; pysqlite3-0.6.0-cp313-cp313-win_amd64.whl
Tags
More Database Engines/Servers packages
DuckDB is an in-process SQL database engine…
permissive · top 1,000 on PyPI
pymssqlpymssql provides a Python DB-API interface to…
copyleft · top 1,000 on PyPI
mysqlclientmysqlclient provides a Python interface to…
copyleft · top 1,000 on PyPI
sqlmodelSQLModel combines SQLAlchemy and Pydantic to…
permissive · top 5,000 on PyPI
tinydbTinyDB is a lightweight, pure-Python document…
permissive · top 5,000 on PyPI
vertica-pythonNative Python client library for connecting to…
permissive · top 5,000 on PyPI
pysqlite3-binaryProvides a self-contained SQLite database…
permissive · top 5,000 on PyPI
sqlean.pyA drop-in replacement for Python's sqlite3…
permissive · top 5,000 on PyPI
sqlcipher3-binaryA Python DB-API 2.0 interface to SQLCipher,…
permissive · top 15,000 on PyPI
sqlcipher3sqlcipher3 is a Python DB-API 2.0 interface to…
permissive · top 15,000 on PyPI
sqlcipher3-wheelsProvides a Python DB-API 2.0 interface to…
permissive · top 15,000 on PyPI
anysqliteAnysqlite wraps SQLite with an async/await…
unclear · top 5,000 on PyPI
aiosqliteaiosqlite provides an async interface to SQLite…
permissive · top 1,000 on PyPI
libsql-clientPython SDK for connecting to and querying…
permissive · top 15,000 on PyPI
opentelemetry-instrumentation-sqlite3Adds OpenTelemetry tracing instrumentation to…
permissive · top 5,000 on PyPI
apswAPSW is a Python wrapper around SQLite's…
unclear · top 5,000 on PyPI