Python interface to ODBC

pip install ceODBC==3.1


Open Source Python/ODBC Utility - ceODBC

ceODBC is a Python extension module that enables access to databases using the ODBC API and conforms to the Python database API 2.0 specifications with a number of additions. Python 3.7 and higher is required as of version 3.1.

See for more information on the Python database API specification.

For feedback or patches, please use GitHub issues:


python -m pip install ceODBC --upgrade

Add the --user option if you do not have system access. Binaries are available for Linux and Windows as a convenience.

Usage Example

Note that the DSN in the example below should be replaced with an appropriate string that ODBC understands. For example, if a system DSN called "MYDATA" has been created in the ODBC manager, use "DSN=MYDATA" to connect. For what is termed DSN-less connections, search the Internet for appropriate strings.

import ceODBC

connection = ceODBC.connect(DSN)

cursor = connection.cursor()
        select Col1, Col2, Col3
        from SomeTable
        where Col4 = ?
          and Col5 between ? and ?""",
        ["VALUE", 5, 10])
for column_1, column_2, column_3 in cursor:
    print("Values:", column_1, column_2, column_3)


If your driver is not capable of transactions (often indicated by the exception "driver not capable" when connecting) then use the following statement to connect instead:

connection = ceODBC.connect(DSN, autocommit=True)

For further information see