代码之家  ›  专栏  ›  技术社区  ›  Bijendra

无法在python中打开库“SQL Server的ODBC驱动程序17”

  •  0
  • Bijendra  · 技术社区  · 6 年前

    我正在使用python脚本连接到远程MSSql服务器。我在OSX m/c中安装了所需的库,并尝试使用python shell进行连接,但操作失败。MSSql未在我的开发计算机中本地安装。

    Python shell:
    >>> cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")
    >>> 
    

    odbcinst的内容。伊尼

    [ODBC Driver 17 for SQL Server]
    Description=Microsoft ODBC Driver 17 for SQL Server
    Driver=/usr/local/lib/libmsodbcsql.17.dylib
    

    驱动程序的文件引用,已存在。

    lrwxr-xr-x    1 biju  admin      56 Mar 23 07:57 libmsodbcsql.17.dylib -> ../Cellar/msodbcsql17/17.5.2.1/lib/libmsodbcsql.17.dylib
    

    直接在驱动程序中使用文件路径,代码可以正常工作。

    在/etc/odbcinst找到了另一个odbcinst文件。伊尼

    [ODBC Driver 13 for SQL Server]
    Description=Microsoft ODBC Driver 13 for SQL Server
    Driver=/usr/local/lib/libmsodbcsql.13.dylib
    UsageCount=1
    

    上述路径/usr/local/lib/libmsodbcsql中不存在文件。13.dylib。我不确定这两个版本的库是否正确安装或必须删除。

    0 回复  |  直到 6 年前
        1
  •  2
  •   Will Keeling    5 年前

    我遇到了同样的问题,我通过设置 ODBCSYSINI 环境变量,指向包含 odbcinst.ini .

    export ODBCSYSINI=/opt/odbc
    

    请注意,该变量指向包含该文件的目录 不是文件本身 .通往我人生的完整道路 odbcinst。伊尼 /opt/odbc/odbcinst.ini

    确保在调用Python代码的脚本或shell中设置了该变量。