Uso de pyodbc cause error: no se encontró el nombre de la fuente de datos y no se especificó un controlador predeterminado

Estoy usando pyodbc para conectar SQL Server. Había creado una cadena de conexión como esta:

from sqlalchemy import Table, Column, databases, Integer, String, ForeignKey, create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import session engine = create_engine('mssql+pyodbc://sa:123@localhost/TrainQuizDB') engine.connect() 

TrainQuizDB es el nombre de la base de datos que creé en el servidor Sql.

Para obtener más información, tengo Windows 8.1 64bit e instalé Python versión 3.5.1 32bit y descargué pyodbc de http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyodbc (pyodbc-3.0.10-cp35- ninguno-win32.whl). Pero cuando bash conectarlo causo este error:

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

También he probado la conexión en las fonts de datos ODBC y fue exitosa.

Conexión ODBC

Como se indica en la sección correspondiente de la documentación de SQLAlchemy :

No se prefieren las conexiones basadas en el nombre de host, sin embargo son compatibles. El nombre del controlador ODBC debe especificarse explícitamente

Por lo tanto, debe agregar el nombre del controlador a su cadena de conexión:

 engine = create_engine('mssql+pyodbc://sa:123@localhost/TrainQuizDB?driver=ODBC+Driver+17+for+SQL+Server')