pyodbc
DB API module for ODBC
Install
pyodbc on PyPI
pip
pip install pyodbcuv
uv add pyodbcpoetry
poetry add pyodbcPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 300 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: pyodbc-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl; pyodbc-5.3.0-cp310-cp310-macosx_11_0_arm64.whl; pyodbc-5.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pyodbc-5.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pyodbc-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl; pyodbc-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl; pyodbc-5.3.0-cp310-cp310-win32.whl; pyodbc-5.3.0-cp310-cp310-win_amd64.whl; pyodbc-5.3.0-cp310-cp310-win_arm64.whl; pyodbc-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl; pyodbc-5.3.0-cp311-cp311-macosx_11_0_arm64.whl; pyodbc-5.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pyodbc-5.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pyodbc-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl; pyodbc-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl; pyodbc-5.3.0-cp311-cp311-win32.whl; pyodbc-5.3.0-cp311-cp311-win_amd64.whl; pyodbc-5.3.0-cp311-cp311-win_arm64.whl; pyodbc-5.3.0-cp312-cp312-macosx_10_13_x86_64.whl; pyodbc-5.3.0-cp312-cp312-macosx_11_0_arm64.whl
About pyodbc
from the package's own PyPI description — quoted content, verbatim
pyodbc
Windows build (image) Ubuntu build (image) PyPI (image)
pyodbc is an open source Python module that makes accessing ODBC databases simple. It implements the DB API 2.0 specification but is packed with even more Pythonic convenience.
The easiest way to install pyodbc is to use pip:
python -m pip install pyodbc
On Macs, you should probably install unixODBC first if you don't already have an ODBC driver manager installed. For example, using the homebrew package manager:
brew install unixodbc
python -m pip install pyodbc
Similarly, on Unix you should make sure you have an ODBC driver manager installed before installing pyodbc. See the...
Read as markdown · JSON record · Source repository · Homepage
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
pyodbc provides a Python interface to ODBC databases, implementing the DB API 2.0 specification for simple, Pythonic database access across Windows, macOS, and Linux.
Medium install friction due to C++ extension compilation requirements and system-level ODBC driver manager dependencies (unixODBC on macOS/Unix, built-in on Windows). Precompiled wheels available for Python 3.10 and 3.11 on major platforms reduce friction. Active maintenance with last commit on 2026-06-06.
MIT license permits commercial and private use with minimal restrictions; attribution required but no copyleft obligations.
Usage
import pyodbc
conn = pyodbc.connect('Driver={ODBC Driver};Server=server;Database=db;UID=user;PWD=pass')
cursor = conn.cursor()
cursor.execute('SELECT * FROM table')
for row in cursor:
print(row)
System ODBC driver manager must be installed (unixODBC on macOS/Unix; built-in on Windows). Requires Python >=3.9 and a C++ compiler if building from source.
Verdict: pyodbc is a mature, actively maintained DB API 2.0 implementation with broad platform support and no known vulnerabilities. Medium install friction stems from C++ compilation and system ODBC dependencies, but precompiled wheels and permissive MIT licensing make it a solid choice for ODBC database access.
Needs verification
- Whether precompiled wheels cover Python 3.9 deployments, as friction evidence shows wheels only for 3.10 and 3.11
- Performance characteristics and connection pooling capabilities
Similar packages
permissive · top 1,000 on PyPI
aiosqlitepermissive · top 1,000 on PyPI
azure-cosmospermissive · top 1,000 on PyPI
mysql-connector-pythoncopyleft · top 1,000 on PyPI
PyMySQLpermissive · top 1,000 on PyPI
pg8000permissive · top 1,000 on PyPI
redispermissive · top 1,000 on PyPI
ninjapermissive · top 1,000 on PyPI
databricks-sql-connectorpermissive · top 1,000 on PyPI
asyncpgpermissive · top 1,000 on PyPI