我正在一个在组织范围内集中安装的驱动器上安装了unixODBC的环境中工作,但是我们(实际的开发人员)不允许在其中安装驱动程序或数据源.这都是倒退,但我必须忍受它.
现在我正在尝试构建一个连接到这个unix enviro的mssql 2005服务器的python应用程序,所以我显然需要一些sql驱动程序!
我通过在我完全控制的部分驱动器上重新安装unixODBC来规避我无法访问预装的unixODBC.我已经安装了freeTDS并配置了所有内容,以便我可以使用isql成功连接到服务器 – 太棒了!
现在唯一的问题是,当我在我的python程序(使用pyodbc)中执行一行时,如:
import pyodbc
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True)
我明白了
('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
我认为这是因为pyodbc仍在寻找原始的unixODBC安装,而不是我的本地安装.所以我想知道:
如何配置我的脚本以查找本地unixODBC安装而不是主驱动器上安装的安装
解决方法:
pyodbc在自定义设置中安装很棘手.您需要编辑setup.py脚本以通过添加类似的内容从您的自定义位置查找unixODBC
settings['include_dirs'] = ['/opt/local/include']
settings['library_dirs'] = ['/opt/local/lib']
到get_compiler_settings函数.