web-dev-qa-db-ja.com

Windowsでpythonからodbcに接続する一般的な方法は?

Windowsでpythonからodbcに接続するには、どのライブラリを使用する必要がありますか?odbcに関してはpywin32の良い代替手段はありますか?

十分に文書化され、堅牢で、積極的に保守されているものなどを探しています。 pyodbc よさそうです-他に何かありますか?

23
user89021

あなたはすでにpyodbcを提案しました、そして私はあなたに同意するつもりです。

それは私の経験の中で最も少ない問題を私に与えました。私は pymssqladodbapi を使用しましたが、それらが例外をスローしたり、問題を作成したりしたときに、コードを交換してpyodbcに置き換えたところ、問題が修正されるか、より速くデバッグできるように、より良いエラーメッセージ。

私が主にMSSQL ServerDBに接続するために使用していることは言及する価値があります。

26
Jason Coon

私はすべてのpythonデータベースアクセスに SQLAlchemy を使用します。SQLAlchemyを強くお勧めします。

SAは、SQLサーバーデータベースに接続するときに、内部でpyodbcを使用します。他のDBAPIライブラリを使用して、cx_Oracleなどの他のデータベースに接続します。

通常DBAPIモジュールを使用するようにSQLAlchemyを使用する単純な例:

import sqlalchemy

engine = sqlalchemy.create_engine('sqlite:///database.db')
for r in engine.execute('SELECT * FROM T'):
    print(r.OneColumn, r.OtherColumn)

しかし、SQLAlchemyの真の価値は、その [〜#〜] orm [〜#〜] および SQL式言語 にあります。見てください、それは使い方を学ぶために努力する価値があります。

17
codeape

別の選択肢は pypyodbc で、これは純粋なPythonで書かれています。これは、pyodbcモジュールの再実装と見なすことができます。コードは約1800行で、メンテナンスに適しています。

これが PythonでmssqlにアクセスするHello Worldサンプル です。

7
pypyodbc

turbodbc スピンを与えることができます。バージョン1.1.1以降、Windowsを正式にサポートしています。あなたがしていることに関しては、pyodbcよりも速い可能性が高いです。

1
Michael Koenig

私は仕事でpyodbcを使用していますが、失敗したことはありません(varius dbsがあります)。堅牢で高速です。

それは積極的に維持されており、python 3バージョンがまもなく登場します。

有料サポート付きの「エンタープライズ」ソフトウェアが必要な場合は、 mxODBC を使用できます。

1
hugo24