为什么macports pyodbc无法在MacOSX(Snow Leopard)上找到数据源名称或驱动程序?

时间:2011-06-10 23:28:01

标签: python macos odbc

我在Snow Leopard上安装了py27-odbc的mac ports软件包。由于OSX不再提供ODBC Administrator应用程序,因此我安装了OpenLink ODBC管理器。安装完成后,我为远程数据库创建了一个DSN,并使用iodbctest实用程序验证配置是否正常。然后我尝试使用pyodbc连接到数据库:

import pyodbc
cnxn = pyodbc.connect('DSN=my-dsn-name;UID=joe;PWD=secret')

我得到以下可爱的错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name
not found, and no default driver specified (0) (SQLDriverConnectW)')

为什么pyodbc找不到ODBC驱动程序和/或我的DSN配置?

更新(因为我无法回答我自己的问题)

系统似乎将ODBC配置数据存储在/ Library / ODBC中,但Mac端口将配置存储在/ opt / local / etc中。这解释了为什么iodbctest有效,但是pyodbc扼流圈。最干净的解决方案似乎只是从Mac Ports位置符号链接到系统位置,这样一组通用的配置文件就可以用于任何工具,无论它在哪里寻找这些信息:

sudo ln -s /Library/ODBC/odbc.ini /opt/local/etc/odbc.ini
sudo ln -s /Library/ODBC/odbcinst.ini /opt/local/etc/odbcinst.ini

0 个答案:

没有答案