使用备用unixODBC安装

mat*_*657 3 python sql-server unixodbc pyodbc freetds

我正在一个在组织范围内集中安装的驱动器上安装了unixODBC的环境中工作,但是我们(实际的开发人员)不允许在其中安装驱动程序或数据源.这都是倒退,但我必须忍受它.

现在,我试图建立从这个UNIX ENVIRO连接到MSSQL 2005服务器Python应用程序,所以我显然需要一些SQL司机!

我绕过我无法进入预装了unixODBC通过重新安装了unixODBC上,我有完全控制驱动器的一部分.我已经安装了freeTDS并配置了所有内容,以便我可以使用isql成功连接到服务器 - 太棒了!

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

import pyodbc
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True)
Run Code Online (Sandbox Code Playgroud)

我明白了

 ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
Run Code Online (Sandbox Code Playgroud)

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

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

tuo*_*mur 6

pyodbc在自定义设置中安装很棘手.您需要编辑setup.py脚本以通过添加类似的内容从您的自定义位置查找unixODBC

settings['include_dirs'] = ['/opt/local/include']
settings['library_dirs'] = ['/opt/local/lib']
Run Code Online (Sandbox Code Playgroud)

发挥get_compiler_settings作用.