簡體   English   中英

無法在 python 中打開 lib 'ODBC Driver 17 for SQL Server'

[英]Can't open lib 'ODBC Driver 17 for SQL Server' in python

我正在使用 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.ini 的內容

[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.ini 中又找到了一個 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 中不存在文件。 我不確定這兩個版本的庫是正確安裝還是必須刪除。

我遇到了同樣的問題,我通過將ODBCSYSINI環境變量設置為指向包含odbcinst.ini的目錄來修復它。

export ODBCSYSINI=/opt/odbc

請注意,變量指向包含文件的目錄,而不是文件本身 我的odbcinst.ini的完整路徑是/opt/odbc/odbcinst.ini

確保在調用 Python 代碼的腳本或 shell 中設置變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM