我已经通过Homebrew使用以下命令安装了UnixODBC和FreeTDS:
brew install unixodbc
brew install freetds --with-unixodbc我已经验证了我可以在命令行上使用tsql通过FreeTDS进行连接。
然而,我得到了以下错误,表明iODBC仍然优先使用:
Error: ('00000', '[00000] [iODBC][Driver Manager]dlopen({FreeTDS}, 6): image not found (0)(SQLDriverConnect)')尽管我可能会尝试,我似乎找不到任何解释,如何告诉操作系统与ODBC驱动程序首选。
编辑:我找到了http://richbs.org/post/43142767072/connecting-to-microsoft-sql-server-from-unix-linux-mac,发现我缺少环境变量ODBCINI,但是修复这个问题对关于的错误没有任何影响。然而,它确实修复了我之前一直忽略的isql。
发布于 2014-01-29 20:11:42
好,这就是我所做的。功劳应该归功于其他人,因为我没有那么聪明(至少这是我的故事-我很久以前在另一台机器上进行了更改,直到今天才重新发现它,我认为是什么促使了它,但今天找不到它)。
我假设您使用的是virtualenv (如果不是,那么为什么不使用呢?)您需要在pyodbc模块中对setup.py进行以下更改(首先克隆它)( 145行左右):
- settings['libraries'].append('iodbc')
-
+ settings['libraries'].append('odbc')
+ #settings['libraries'].append('iodbc')然后运行python setup.py install。这(据我所知)去掉了与iODBC的链接,并将从unixODBC中找到odbc库。
这可能会使部署变得困难,但我假设当您将其部署到Linux实例时(它不会受到iODBC/unixODBC问题的影响)。有关于如何在类似posix的else分支中检测不同库的评论,因此它在某人的清单上。
https://stackoverflow.com/questions/20466664
复制相似问题