I am trying to write a generic database connector class in python. For this I want to first check what drivers are installed on the machine and throw an error if the required drivers are missing in the machine.
Is there a way to do this in python?
Note: This has been tested on Windows 10
The pyodbc library has a method which returns a list of installed ODBC drivers. Granted, it's just a list of the driver names, so might be a bit fiddly getting to the most current driver, but hopefully this will help.
I use regex (via the built-in re module) to filter down to the driver I need.
import pyodbc pyodbc.drivers() The output provides a list of installed ODBC drivers.
driver = sorted(pyodbc.drivers()).pop() or to grab an earlier version driver = sorted(pyodbc.drivers(), reverse=True).pop()pyodbc package which has since been fixed. On my mac (Python 3.7.3, pyodbc version 4.0.27) that method works. I'd show a code snippet, but the markdown instructions don't actually work.There's nothing built into Python that will allow you to do this, except maybe doing something really ugly with ctypes and I'm not sure if that will work. However, you can probably do it with Tim Golden's wmi.py module.
I've found examples of using WMI to find regular drivers:
So you would probably have to filter the list somehow.