[英]get Erorr "Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")" python SqlAchemy in docker
[英]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.