python – PyOdbc无法连接到SQL Server实例

我试图使用
Python 2.7(32位)在Windows 7上使用pyodbc 3.0.6.,SQLAlchemy 1.0.4连接到sql server实例.我正在使用如下连接字符串

    DRIVER={SQL Server};SERVER=mymachinename;DATABASE=mydb;UID=sa;PWD=admin1;

但我一直收到这个错误

Could not parse rfc1738 URL from string ‘DRIVER={SQL Server};SERVER=mymachinename;DATABASE=mydb;UID=sa;PWD=admin1’

我正在使用与sqlSoup.Something这样的连接字符串

    db = sqlsoup.SQLSoup(connectionstring)

编辑
我尝试使用SqlAlchemy中的Automap,它也失败并显示相同的消息

Traceback (most recent call last):
File “C:\Sandbox\Python scripts\BumpValues\newConnectivityTest.py”, line 7, in
engine = create_engine(“DRIVER={SQL Server};SERVER=gagan;DATABASE=persons;UID=sa;PWD=admin1;”)
File “C:\Python27\lib\site-packages\sqlalchemy\engine__init__.py”, line 386, in create_engine
return strategy.create(*args, **kwargs)
File “C:\Python27\lib\site-packages\sqlalchemy\engine\strategies.py”, line 49, in create
u = url.make_url(name_or_url)
File “C:\Python27\lib\site-packages\sqlalchemy\engine\url.py”, line 176, in make_url
return _parse_rfc1738_args(name_or_url)
File “C:\Python27\lib\site-packages\sqlalchemy\engine\url.py”, line 225, in _parse_rfc1738_args
“Could not parse rfc1738 URL from string ‘%s’” % name)
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string ‘DRIVER={SQL Server};SERVER=gagan;DATABASE=persons;UID=sa;PWD=admin1;’
[Finished in 0.4s with exit code 1]
[shell_cmd: python -u “C:\Sandbox\Python scripts\BumpValues\newConnectivityTest.py”]

我的代码如下

from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine


Base = automap_base()
engine = create_engine("DRIVER={SQL Server};SERVER=gagan;DATABASE=persons;UID=sa;PWD=admin1;")
Base.prepare(engine, reflect=True)

usrs = Base.classes.users
print(usrs)

能告诉我这里我做错了什么吗?

编辑
我认为这不是布莱恩提出的问题的副本.例如,我遵循问题​​中建议的相同示例

    import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://sa:admin1@gagan/persons')

但即使它失败了相同的消息

这是快照..
第一个使用类型为“’mssql pyodbc:// user:password @ server / database’”的连接字符串

而第二个使用类型的连接字符串
‘DRIVER = {SQL Server}; SERVER = gagan; DATABASE = people; UID = sa; PWD = admin1;

谢谢

最佳答案 好的,这似乎解决了这个问题

import urllib    
connection_string = "DRIVER={SQL Server};Database=people;SERVER=gagan;UID=sa;PWD=admin1"
connection_string = urllib.quote_plus(connection_string) 
connection_string = "mssql+pyodbc:///?odbc_connect=%s" % connection_string
点赞