1. ホーム
  2. python

[解決済み] lib 'ODBC Driver 13 for SQL Server'を開くことができないのですが?Symリンクの問題か?

2022-02-17 18:22:57

質問

pyodbcでsql serverのデータベースに接続しようとすると(macの場合)。

import pyodbc

server = '####'
database = '####'
username = '####@####'
password = '#####'
driver='{ODBC Driver 13 for SQL Server}'

pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+password)

以下のようなエラーが発生します。

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")

実際のドライバの場所にパスを通すと

driver='/usr/local/lib/libmsodbcsql.13.dylib'

動作開始!

私の odbcinst.ini はこのようになります。

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

への参照をどのようにすればよいのでしょうか? driver='{ODBC Driver 13 for SQL Server}' が再び動作するようになりますか?

私は最初 このガイド をクリックして、ドライバをインストールしてください。そして、私はMac Sierra上でanacondaを使用しています、もしそれが助けになるなら?

解決方法は?

実行中です。

odbcinst -j

降伏した。

unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /Users/emehex/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

にコピーするのではなく /etc/ ディレクトリの中にあると unixODBC が考えたのかは不明ですが)各ファイルへのシンボリックリンクを作成しました。

sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini
sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini

これで問題は解決しました。