PythonからPostgreSQLに接続できるようになると、「ちゃんと動いた」という小さな達成感があります。
※この記事ではまず、PythonからPostgreSQLに接続する基本を、シンプルに確認するところまでを扱います。
ただ、その次に多くの人がこう感じます。
このデータベース、どこで動かし続ければいいんだろう?
ローカル環境での確認をベースにしていますが、ここで使うコードは、あとでVPSなどの環境に移してもほぼそのまま使えます。
※ このページは「Pythonでデータを扱えるようになりたい人」の最初の一歩として書いています。
psycopg2とは?

psycopg2 は、PythonからPostgreSQLを操作するための定番ライブラリです。
SQLiteやMySQLと違い、PostgreSQL専用に設計されているのが特徴です。
とはいえ、最初から詳しく理解する必要はありません。
この段階では、
「PythonとPostgreSQLをつなぐ橋渡し役」
くらいの認識で十分です。
Python側のコードはとてもシンプルなので、「まず動かす → 慣れてきたら理解を深める」という順番がおすすめです。
SQLやデータベースにまだ慣れていない場合は、基礎がひと通りまとまった書籍を手元に1冊置いておくと助けになります。
▶ SQL 第2版 ゼロからはじめるデータベース操作(Amazon)
psycopg2を使ってPythonからPostgreSQLに接続する
psycopg2は、pipでインストールできます。
pip install psycopg2-binary
インストールが終わったら、PythonコードからPostgreSQLへ接続できるようになります。
接続コードの例
以下は、PythonからPostgreSQLに接続し、簡単なSQLを実行する最小構成のサンプルです。
import psycopg2
conn = psycopg2.connect(
host="localhost",
port=5432,
dbname="sample_db",
user="sample_user",
password="password"
)
cur = conn.cursor()
cur.execute("SELECT 1;")
result = cur.fetchone()
print(result)
cur.close()
conn.close()
(1,) が表示されれば、PythonからPostgreSQLへの接続は成功しています。
※ 実際の運用では、パスワードなどの接続情報は 環境変数で管理するのがおすすめです。
接続できないときのチェックポイント
うまく接続できない場合、Pythonコードよりも 環境側 に原因があることがほとんどです。
まずは、次の点を確認してください。
- PostgreSQLが起動しているか
- ホスト名・ポート番号は正しいか
- データベース名・ユーザー名・パスワードは合っているか
ここが揃っていれば、Python側のコードはほぼそのままで動きます。
なぜSQLiteではなくPostgreSQLなのか

Pythonで使えるデータベースとして、SQLiteという選択肢もあります。
SQLiteは手軽で、小さなスクリプトや検証用途にはとても便利です。
ただ、次のような場面ではPostgreSQLの方が扱いやすくなります。
- 複数の環境から同じDBに接続したい
- Webアプリとして使いたい
- データを継続的に蓄積したい
最初はSQLiteで始めて、成長のタイミングでPostgreSQLに移行するという流れも自然です。
この構成でできること・できないこと
ここまでの構成で、できることは次の通りです。
- PythonスクリプトからDBを操作する
- データの保存・取得を行う
- FlaskなどのWebアプリに発展させる
一方で、次のようなことはこの段階では考えなくて大丈夫です。
- 高負荷な本番運用
- 複雑なDB設計や最適化
- パフォーマンスチューニング
まずは「PythonからDBに触れる感覚」をつかむことを優先してください。
このあと多くの人がつまずくポイント
PythonからPostgreSQLに接続できたあと、多くの人が次に悩みます。
- PCを閉じるとデータベースが止まる
- 別の環境から接続できない
- Webアプリから使いたくなった
これらは、Pythonコードの問題ではありません。
「PostgreSQLをどこで動かしているか」という置き場所の問題です。
次の一歩:PostgreSQLを安定して動かすには
学習や小さな開発を続けるなら、PostgreSQLが常に起動している環境を1つ用意しておくと楽になります。
Pythonからの接続が安定するので、私はこの用途専用にVPSを1台用意しました。
ローカル環境で詰まる時間が減り、Pythonのコードそのものに集中しやすくなりました。
(学習や小さな開発がかなり楽になります)
※ VPS上にPostgreSQLを構築する手順は、次の記事で詳しくまとめていく予定です。

自分のPCで試したい人へ
もちろん、「まずは自分のPCだけで試したい」という段階でも、まったく問題ありません。
この記事の内容を使って、ローカル環境で接続できるところまで確認できれば十分です。
その先に進みたくなったときに、環境を切り替えればOKです。
まずは「PythonでDBにつながった!」という成功体験を最優先に。
そのうえで、次に「どこで動かすか」を考えると、学習がブレにくくなります。
まとめ
PythonからPostgreSQLに接続できるようになると、扱えるデータの幅が一気に広がります。
最初はローカル環境でも構いませんが、作業が増えてきたら「データベースの置き場所」を見直すだけで、Pythonの扱いやすさが変わります。
次の記事では、VPS上にPostgreSQLを用意し、Pythonから接続するところまでを 最短ルート で解説する予定です。
ここまでできていれば、Pythonからデータベースを扱うための入口はクリアです。
あとは、「どこで動かし続けるか」を選ぶだけです。
この先もPythonでデータを扱っていくなら、PostgreSQLを安定して動かせる環境を1つ用意しておくと安心です。
Pythonからの接続が安定し、環境で悩む時間が減るので、私はPython用途としてシンプルに使えるVPSを選びました。

