2011-10-24 4 views
3

私はunixODBCが組織全体の中央にマウントされたドライブにインストールされている環境で作業していますが、私たち(実際の開発者)はドライバやデータソースをインストールすることはできません。それはすべて後ろ向きですが、私はそれと共に生きなければなりません。別のunixODBCのインストールを使用する

今、私はこのunix enviroからmssql 2005サーバーに接続するPythonアプリケーションをビルドしようとしていますので、明らかにいくつかのSQLドライバが必要です!

私は完全に制御できるドライブの一部にunixODBCを再インストールすることで、プリインストールされたunixODBCへのアクセスが不十分になるのを回避しました。私はfreeTDSをインストールし、isqlを使ってサーバに正常に接続できるようにすべてを構成しました。私はpyodbcがあるためであると仮定し

('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)') 

を取得

import pyodbc 
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True) 

今、唯一の問題は、私はのような(pyodbcを使用している)私のPythonプログラムで行を実行したときに、元のunixODBCのインストールを探していて、ローカルのものではありません。だから私は思っていた:

私は私の地元のunixODBCが

答えて

6

pyodbcは、カスタムセットアップでインストールするのが難しいですメインドライブにインストールの代わりにインストールを探すために私のスクリプトを設定するにはどうすればよいです。あなたは

settings['include_dirs'] = ['/opt/local/include'] 
settings['library_dirs'] = ['/opt/local/lib'] 

get_compiler_settingsへの機能のようなものを追加して、カスタムの場所からunixODBCのを探すためにsetup.pyスクリプトを編集する必要があります。

+0

あなたは少し手の込んだてもらえますか?私はsetup.pyを本当に混乱させたことはありません。私は何をしているのかよく分かりません。 – matrix10657

+0

[pyodbc 2.1.11](http://code.google.com/p/pyodbc/source/browse/setup.py?name=2.1.11)を使用していると仮定して、行番号142パスがカスタムインストールディレクトリを指していることを確認してください。 – tuomur

+0

Thx @eclaird、私はOS X上でこの同じ問題を抱えていましたが、iOSBCが含まれているiOSBCは、接続する必要のあるMSSQLバージョンではうまく動作しません。私はpyodbcを別のODBCインストールに対してビルドするのに問題がありましたが、あなたのソリューションは魅力的なように機能しました=) – Justin

0

問題はグローバルINIファイルを調べている可能性があります。あなたは上記の回答のためODBCSYSINI=/path/to/location/of/inifiles

2

感謝を定義することによって、それはodbc.iniodbcinst.iniファイルを検索する場所を設定することができます - それは、デフォルトのiODBCを使用しないことを伝えるためにsetup.pyでget_compiler_settingsを編集私を得ました。

何が(OS X 10.9、pyodbc 3.0.7)私のために働いた。

elif sys.platform == 'darwin': 
    # OS/X now ships with iODBC. 
    #settings['libraries'].append('iodbc') 

    # but I don't want to use iodbc, I want to use brewed unixodbc 
    settings['libraries'].append('odbc') 
関連する問題