Вам необходимо указать драйвер SQL, который вы хотите использовать, для MS-SQL это будет собственный драйвер SQL Server Native Client 11.0
Так, например, вы можете использовать что-то вроде этого:
cxn_string = 'mssql+pyodbc://<Username>:<password>@<DBServername>/<DBName>?driver=SQL+Server+Native+Client+11.0'
engine = sqlalchemy.create_engine(cxn_string, pool_pre_ping=True)
Но это немного долго и сложно для чтения, поэтому я обычно делаю вспомогательную функцию, что-то вроде этого
import sqlalchemy
import urllib
def sql_connect(server, username, password, database, **kwargs):
'''Connect to SQL server'''
parameters = {'driver': 'SQL Server Native Client 11.0'}
string = r'mssql+pyodbc://{username}:{password}@{server}/{database}?{parameters}'
cxn_string = string.format(server=server,
username=username,
password=password,
database=database,
parameters=urllib.parse.urlencode(parameters))
return sqlalchemy.create_engine(cxn_string, **kwargs)