pythonsqlalchemypyodbc

Connecting to database using SQLAlchemy


I'm trying to connect to a database on my local machine.

import sqlalchemy
engine = sqlalchemy.create_engine('mssql+pyodbc://localhost\\SQLEXPRESS/NCM')

It fails with the following error:

DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

And also outputs this warning:

C:\Miniconda\envs\bees\lib\site-packages\sqlalchemy\connectors\pyodbc.py:82: SAWarning: No driver name specified; this is expected by PyODBC when using DSN-less connections
"No driver name specified; "

Where should I be looking to diagnose the problem?


Solution

  • As shown in this link, as of version 1.0.0 you need to specify the driver explicitly for hostname connections.

    Changed in version 1.0.0: Hostname-based PyODBC connections now require the
    SQL Server driver name specified explicitly. SQLAlchemy cannot choose an 
    optimal default here as it varies based on platform and installed drivers.