On Tue, May 21, 2019 at 8:25 AM Andrew Z <form...@gmail.com> wrote: > > What does 249 specification mention about drivers? >
Nothing. PEP 249 defines how a Python app communicates with the database module. For instance: import psycopg2 db = psycopg2.connect("...") with db, db.cursor() as cur: cur.execute("select * from people where title = %s", [title]) for person in cur: print(person) You could replace the first two lines with, say, mysql.connector, or sqlite3, and the rest of the code doesn't need to care. The only part that needs to be database-engine-specific is the connection string passed to the connect() function. Some of these modules require lower level drivers, because they're simple wrappers around lower-level C APIs. Others are linked statically with the entire code required to make the connection (the sqlite3 module, I believe, is like that). Still others are pure Python implementations of wire protocols, which means they don't need anything more than the Python standard library and its socket services. In the case of Oracle, it sounds like it depends on a previously-installed Oracle client. ChrisA -- https://mail.python.org/mailman/listinfo/python-list