【发布时间】:2015-08-13 10:38:14
【问题描述】:
我在 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 连接到数据库,这表明我的 unixodbc 配置是有序的。但是当我尝试按如下方式连接到 python 上的数据库时;
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
【问题讨论】:
-
我可以在升级到 Mac OS 10.10.5 后通过 pyodbc 连接到数据库,但是我仍然没有解决方案让这个设置在 Mac OS 10.7.5 上工作
标签: macos python-2.7 pyodbc unixodbc