年収300万ライフ

【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

モバイルバージョンを終了