OSS探訪GitHubでログイン

同期・非同期APIと型変換を備えたPython向けPostgreSQLドライバ

OSS規模スコア 220.7OSS健全度 100
スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
2,504
主要言語
Python
ライセンス
LGPL-3.0-only
リポジトリ最終更新
2026/10/02
ページ内ナビ

概要

Psycopg 3はPython向けのPostgreSQL adapterです。同期・非同期connection、cursor、transaction、PostgreSQL型との変換を提供し、pure Python実装に加えてbinary packageやC extensionを選択できます。connection poolは別packageとして提供されます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

同じAPI設計で同期・非同期のPostgreSQL接続を扱う

psycopg.connect()による同期connectionとAsyncConnection.connect()による非同期connectionを提供し、context managerでtransactionのcommit・rollbackとconnection closeを管理できます。asyncioだけでなくgevent連携も公式に扱われています。

出典:[4][5]

pure Python・binary・C実装を選び、必要ならconnection poolを追加する

main packageはpure Python実装で、binary extraは事前build済み実装、c extraはC extensionを追加します。connection poolはpsycopg-poolという別packageで、同期・非同期poolとconnection lifecycle管理を提供します。

出典:[2][3][6]

向いている用途

PostgreSQLへ直接接続し、SQLとdriver機能を明示的に扱いたいPython backendに向く

ORMの下位driverとしても、SQLを直接実行するserviceでも利用できます。同期Web application、async service、batch処理などでPostgreSQL connectionとtransactionを明示的に制御したい場合に適します。

出典:[2][4][5]

導入前の確認

3.3.6はPython 3.10以上。実装方式とlibpq条件をdeploymentごとに確認する

Psycopg 3.3.6はPython 3.10以上を要求します。pure Python実装はsystemのlibpqを利用し、binary/C実装はinstallation条件が異なります。3.3.6ではPython 3.15対応、async query overhead改善、query interrupt時に無期限待機しない修正などが入り、interrupt修正の一部はlibpq 17以上を必要とします。

出典:[3][7]

参考にした公式資料

  1. [1]psycopg/psycopg — GitHub repository(2026-10-06)
  2. [2]Psycopg 3.3.6 — README(2026-10-06)
  3. [3]Psycopg 3.3.6 — package metadata(2026-10-06)
  4. [4]Psycopg 3.3.6 — basic usage(2026-10-06)
  5. [5]Psycopg 3.3.6 — concurrent operations(2026-10-06)
  6. [6]Psycopg 3.3.6 — connection pools(2026-10-06)
  7. [7]Psycopg 3.3.6 release notes(2026-10-06)
  8. [8]Psycopg LGPL-3.0-only license(2026-10-06)
編集部からの補足

PostgreSQLのdriver layerを直接扱えるため、ORM任せにせずtransaction・connection・型変換を制御したい場合に有力です。pure Python・binary・Cのどれを採用するかと、poolをapplication内で持つか外部poolへ任せるかをdeployment単位で決めてください。

3ステップで試す

  1. 1

    Psycopg 3.3.6のbinary実装を導入する

    確認対象のPsycopgをversion固定で導入します。Python 3.10以上が必要です。

    python -m pip install "psycopg[binary]==3.3.6"
  2. 2

    検証用PostgreSQLの接続先を指定する

    USER・PASSWORD・HOST・DBNAMEを、変更してよい検証用PostgreSQLの値へ置き換えます。実際のcredentialをrepositoryへ保存しないでください。

    export DATABASE_URL='postgresql://USER:PASSWORD@HOST:5432/DBNAME'
  3. 3

    接続してserver versionを読む

    read-onlyなSELECTで接続とquery実行を確認します。database schemaやdataは変更しません。

    python - <<'PY' import os import psycopg with psycopg.connect(os.environ['DATABASE_URL']) as conn: print(conn.execute('select version()').fetchone()[0]) PY
公式READMEで確認

成長

成長の推移 · 直近30日

2,504 Stars

推移データを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • database
  • development
  • driver
  • postgresql
  • python
Stars
2,504
Forks
283
Watchers
28
Open Issues
64
Contributors
103
所有者種別
Organization
主要言語
Python
ライセンス
LGPL-3.0-only
リポジトリ最終更新
2026/10/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?