pypyodbc
A Pure Python ctypes ODBC module
Decision gist · record as of 2026-08-14
No—unless you have a specific constraint that prevents using pyodbc (e.g., PyPy or IronPython, or a system without a C compiler). pypyodbc is dormant, with no releases since December 2021 and no active maintenance. For standard CPython use cases, pyodbc is actively maintained and more reliable. If you do need pure Python ODBC, verify compatibility with your database driver and Python version before committing to it.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires an ODBC driver installed and configured on the system for the target database (e.g., SQL Server ODBC Driver, Microsoft Access driver); the package itself is pure Python but depends on system-level ODBC infrastructure.
- Installation friction is high due to lack of runtime dependencies but the package is dormant—last release was 2021-12-23, over 1695 days ago.
- The codebase is archived and no longer actively maintained, though the repository remains available.
License · maintenance · safety
MIT (permissive) — MIT license is permissive and imposes minimal restrictions; you can use, modify, and distribute pypyodbc freely in commercial or private projects with only attribution required.
last release 2021-12-23 (1695 days) · last repo commit 2023-12-14 · 63 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 90,487 downloads/mo, #13,582 on PyPI
Alternatives
Verify before relying
import pypyodbc
connection_string = 'Driver={SQL Server};Server=localhost;Database=mydb;UID=user;PWD=pass;'
db = pypyodbc.connect(connection_string)
cursor = db.cursor()
cursor.execute("SELECT * FROM table_name")
row = cursor.fetchone()
cursor.close()
db.close()- Current compatibility with modern Python versions (3.8+) and recent database driver versions
- Whether the package works reliably with contemporary SQL Server versions beyond 2008
- Status of Access MDB file creation features on current Windows systems
What it is and what it does
pypyodbc is a pure Python ODBC interface that lets you connect to databases like SQL Server and Microsoft Access without needing compiled C extensions. It reimplements the pyodbc API using ctypes to call system ODBC drivers directly, making it portable across CPython, PyPy, and IronPython on Windows, Linux, and macOS. The entire module is a single Python script with less than 3000 lines, so you can even use it by copying the file into your project without installing it.
You use it much like pyodbc: create a connection with a connection string, get a cursor, execute SQL queries with parameter binding, and fetch results. It handles both simple queries and parameterized statements, and can work with Microsoft Access databases including built-in functions for creating and compressing MDB files on Windows. However, the package is dormant—the last release was in December 2021, and there have been no updates since then.
Use it for
- Connect to SQL Server databases from Python scripts on systems where pyodbc cannot be compiled or installed
- Access Microsoft Access MDB files programmatically, including creating new databases on Windows
- Write database code that runs unchanged on PyPy or IronPython, not just CPython
- Migrate legacy pyodbc code to a pure-Python alternative when binary dependencies are unavailable
- Query databases from embedded or restricted Python environments where C extensions cannot be loaded
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No—unless you have a specific constraint that prevents using pyodbc (e.g., PyPy or IronPython, or a system without a C compiler).
pypyodbc is dormant, with no releases since December 2021 and no active maintenance. For standard CPython use cases, pyodbc is actively maintained and more reliable. If you do need pure Python ODBC, verify compatibility with your database driver and Python version before committing to it.
Install
pypyodbc on PyPI
Before you install
Installation friction is high due to lack of runtime dependencies but the package is dormant—last release was 2021-12-23, over 1695 days ago. The codebase is archived and no longer actively maintained, though the repository remains available.
Requires an ODBC driver installed and configured on the system for the target database (e.g., SQL Server ODBC Driver, Microsoft Access driver); the package itself is pure Python but depends on system-level ODBC infrastructure.
License in practice
MIT license is permissive and imposes minimal restrictions; you can use, modify, and distribute pypyodbc freely in commercial or private projects with only attribution required.
Quickstart
import pypyodbc
connection_string = 'Driver={SQL Server};Server=localhost;Database=mydb;UID=user;PWD=pass;'
db = pypyodbc.connect(connection_string)
cursor = db.cursor()
cursor.execute("SELECT * FROM table_name")
row = cursor.fetchone()
cursor.close()
db.close()
Verify before relying
- Current compatibility with modern Python versions (3.8+) and recent database driver versions
- Whether the package works reliably with contemporary SQL Server versions beyond 2008
- Status of Access MDB file creation features on current Windows systems
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Dormant 1,695 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 90,487 / month, #13,582 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python |
Evidence: pypyodbc-1.3.6.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cross-platform ODBC interface”
- pypyodbcpypyodbc provides a pure Python ODBC interface for connecting to…
- pyodbcpyodbc provides Python access to ODBC databases through a DB API…
- ibm-dbPython driver for connecting to IBM Db2 for LUW and IBM Db2 for z/OS…
Give your agent the search over MCP, or paste the wish link into any chat.
More Database packages
psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.
Python client library for connecting to and executing commands against Redis key-value stores, supporting both synchronous and asynchronous operations.
Install it if your application needs to interact with Redis; the only prerequisite is a running Redis server instance.
YDB Python SDK is the official client library for connecting to and querying YDB databases from Python applications.
Install it if you need to connect Python applications to YDB databases.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
sqlparse tokenizes SQL text into a tree of statements, clauses, and expressions, and provides functions to split scripts, format queries, and inspect parsed tokens without validating dialect or syntax.
Install it if you need to manipulate, format, or analyze SQL text programmatically.
Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.
See also intersystems-irispython · pyodbc · mssql-python · mssql · aioodbc · databricks-dbapi · pyseccomp · mssql-django · mssql-python-odbc · access-parser