私は組織全体の中央にマウントされたドライブに unixODBC がインストールされている環境で作業していますが、私たち (実際の開発者) はそこにドライバーやデータソースをインストールすることを許可されていません。それはすべて後ろ向きですが、私はそれと一緒に暮らす必要があります。
現在、この UNIX 環境から mssql 2005 サーバーに接続する python アプリを構築しようとしているので、明らかに SQL ドライバーが必要です!
完全に制御できるドライブの一部に unixODBC を再インストールすることで、プリインストールされた unixODBC にアクセスできないことを回避しました。freeTDS をインストールし、すべてを構成して、isql を使用してサーバーに正常に接続できるようにしました。
唯一の問題は、python プログラム (pyodbc を使用している) で次のような行を実行するときです。
import pyodbc
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True)
私は得る
('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
これは、pyodbc がまだ元の unixODBC インストールを探しており、ローカルの unixODBC インストールを探しているためだと思います。だから私は疑問に思っていました:
メイン ドライブにインストールされているものではなく、ローカルの unixODBC インストールを検索するようにスクリプトを構成するにはどうすればよいですか