我使用的是Mac OS 10.7.5。我想从python2.7连接到MS SQL数据库。为了连接,我已经安装并配置了FreeTDS和unixodbc。在这之后,我通过pip安装了pyodbc 3.0.10库。
在之前的版本中,Mac安装上的pyodbc被编译为使用iODBC,因此为了使pyodbc模块使用unixodbc,需要在编译模块之前进行一些修改。但是后期版本(包括3.0.10)被编译为默认使用unixodbc。
配置完成后,我设法使用isql连接到db,这表明我的unixodbc配置正常。但是当我尝试连接到python上的db时,如下所示;
pyodbc.connect('DSN=DSN;UID=USER;PWD=PASS')
我收到以下错误:
pyodbc.Error: ('IM002', '[IM002] [iODBC][Driver Manager]Data source name not found and no default driver specified. Driver could not be loaded (0) (SQLDriverConnect)')
看起来它正在尝试使用iODBC。可能导致这种情况的原因是什么?
编辑:我的配置文件:
freetds.conf:
[SERVERNAME]
host = DBID.database.windows.net
tds version = 7.1
port = 1433
ODBCINST.INI
[FreeTDS]
Description = FreeTDS
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
ODBC.INI
[DSN]
Description = "DESC"
Driver = FreeTDS
Servername = SERVERNAME
Port = 1433
Database = DBNAME
答案 0 :(得分:0)
我总是有更好的运气直接与选项联系:
111.999.88.80 - - [27/Mar/2017:00:03:16 -0600] "HEAD / HTTP/1.1"
你可以尝试一下吗?如果这不起作用,请包括你的freetds.conf,odbc.ini和odbcinst.ini文件,以便我们可以重新编译。祝你好运!