从Mac OS 10.7到python

时间:2015-08-13 10:38:15

标签: macos python-2.7 pyodbc unixodbc

我使用的是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

1 个答案:

答案 0 :(得分:0)

我总是有更好的运气直接与选项联系:

111.999.88.80 - - [27/Mar/2017:00:03:16 -0600] "HEAD / HTTP/1.1" 

你可以尝试一下吗?如果这不起作用,请包括你的freetds.conf,odbc.ini和odbcinst.ini文件,以便我们可以重新编译。祝你好运!