首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用备用unixODBC安装

使用备用unixODBC安装
EN

Stack Overflow用户
提问于 2011-10-25 05:07:30
回答 3查看 2.5K关注 0票数 3

我在一个环境中工作,该环境将unixODBC安装在组织范围的集中安装驱动器上,但是我们(实际的开发人员)不允许在其中安装驱动程序或数据源。这一切都是倒退的,但我不得不接受它。

现在,我正在尝试构建一个python应用程序,从这个unix环境连接到MSSQL2005服务器,所以我显然需要一些sql驱动程序!

我绕过了无法访问预先安装的unixODBC的问题,在我拥有完全控制权限的驱动器部分重新安装了unixODBC。我已经安装了freeTDS并对一切进行了配置,这样我就可以使用isql成功地连接到服务器--太棒了!

现在唯一的问题是,当我在我的python程序(使用pyodbc)中执行一行时,如下所示:

代码语言:javascript
复制
import pyodbc
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True)

我得到了

代码语言:javascript
复制
 ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')

我认为这是因为pyodbc仍然在寻找原始的unixODBC安装,而不是我的本地安装。所以我想知道:

如何配置脚本以查找本地unixODBC安装,而不是安装在主驱动器上的安装

EN

回答 3

Stack Overflow用户

发布于 2011-10-25 05:45:47

pyodbc很难在自定义安装中安装。您需要编辑setup.py脚本,以便通过添加如下内容从自定义位置查找unixODBC

代码语言:javascript
复制
settings['include_dirs'] = ['/opt/local/include']
settings['library_dirs'] = ['/opt/local/lib']

转到get_compiler_settings函数。

票数 6
EN

Stack Overflow用户

发布于 2013-10-26 03:54:22

感谢上面的回答-它让我在setup.py中编辑get_compiler_settings,告诉它不要使用默认的iodbc。

对我有效的(OS X 10.9,pyodbc 3.0.7)是:

代码语言:javascript
复制
elif sys.platform == 'darwin':
    # OS/X now ships with iODBC.
    #settings['libraries'].append('iodbc')

    # but I don't want to use iodbc, I want to use brewed unixodbc 
    settings['libraries'].append('odbc')
票数 2
EN

Stack Overflow用户

发布于 2011-11-01 23:42:52

问题可能是因为它在全局ini文件中查找。您可以通过定义ODBCSYSINI=/path/to/location/of/inifiles来设置它查找odbc.iniodbcinst.ini文件的位置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7881985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档