27

pygresql、pypgsql、psycoなどのPython用のpostgresqlモジュールをいくつか見てきました。それらのほとんどはPythonDBAPI 2.0に準拠しており、一部は現在積極的に開発されていません。どのモジュールをお勧めしますか?なんで?

4

6 に答える 6

21

psycopg2 が最も人気があるようです。私はそれで困ったことはありません。実際には、bpgsqlと呼ばれる PostgreSQL 用の純粋な Python インターフェースもあります。psycopg2 よりもお勧めしませんが、最近 Django をサポートできるようになり、C モジュールをコンパイルできない場合に便利です。

于 2008-09-27T21:00:21.393 に答える
2

最初のものはもう少し安定しているように見えるので、Psycopg2よりもPsycopgをお勧めします. 少なくとも私の経験では。24 時間年中無休で実行しているアプリケーションがあり、Psycopg2 からランダムなメモリ クラッシュ (ダブル フリーまたは破損エラー) が発生することがありました。Python のエラーではなく C のエラーであるため、高速または簡単にデバッグできるものはありません。Pyscopg に切り替えたばかりで、その後はクラッシュしませんでした。

また、別の投稿で述べたように、bpgsqlは非常に優れた代替手段のようです。コンパイルする必要がないため、安定しており、使いやすいです。唯一の悪い点は、ライブラリがスレッドセーフではないことです。

Pygresql はいいようです。このライブラリを使用してデータベースにクエリを実行するより直接的な方法があります。しかし、これがどれほど安定しているかはわかりません。

于 2009-10-11T10:06:27.087 に答える
2

過去3年間、問題なくpg8000を使用してきました。これは最新で、pypi で利用でき、python2 と python3 の両方で動作します。「pip install pg8000」を使用してすばやく取得できます (ファイアウォールの内側にいる場合は、 --proxy=yourproxy:yourport を使用することを忘れないでください)。

スレッド セーフが心配な場合は、スレッド セーフのスコアも表示されます ( http://pybrary.net/pg8000/dbapi.htmlおよびhttps://www.python.org/dev/peps/pep-を参照)。 0249/スレッド セーフのさまざまなレベルの定義について) (ただし、psql でスレッドを使用したことはまだありません)。

于 2016-03-15T20:54:06.397 に答える
1

私の経験では、psycopg2 がこれに最もよく使用されるライブラリです。あなたが言ったように、それはDB API 2.0に準拠しており、操作するための堅実なインターフェースを提供します.

標準 API が少し冗長で扱いにくいと感じている人のために、役立つ小さなライブラリを作成しました。

https://github.com/hugollm/rebel

于 2016-11-01T17:22:26.847 に答える
0

Psycopg1は、維持されていませんが、Psycopg2よりもスレッド数の多い環境(Webアプリケーションなど)でのパフォーマンスが優れていることで知られています。どちらもよく書かれていて堅実です。ユースケースに応じて、この2つのうちの1つを選択します。

于 2008-09-28T13:04:17.877 に答える