【Windows】Python 3.12でpsycopg2がエラーが出てインストールできなかったのでpsycopg3に乗り換えた話

Pythonのバージョンを3.12に上げたのでパッケージのインストールをし直していたら、psycopg2をインストールしようと思ったときにエラーが出た。

 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 0: invalid start byte
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

どうもpipのせいではないよと書いてあるのでパッケージ自身の問題だなと思い調べてみたら、この記事を書いている2023年10月28日時点で以下のissueで対応していることはわかった。

Add Python 3.12 support for Windows #1628
https://github.com/psycopg/psycopg2/issues/1628

でも早めに対応したいところがあったのでリリースまで待つわけにはいかないなーと思ったら、issue内に「psycopg3へ移行したらどうだい」というコメントを見つけたので、「3出てたんかい!」となり速攻でインストール。

pip install psycopg

あとはドキュメントを読めばわかるはず…

https://www.psycopg.org/psycopg3/docs/basic/usage.html

関連記事

年収アッププログラミング

【MySQL】AUTO_INCREMENTとPRIMARY KEYを同時に設定する方法

CREATE TABLE時にidへAUTO_INCREMENTとPRIMARY KEYを設定するのは定番だと思うのですが、最近はフレームワークを使ってテーブルを作るため、いざSQLを書いて作ろうとすると忘れがち。 今回は自分の名前とメールアドレスを格納するuser...