インストールエラーの背景
psycopg2をpipでインストールするとPython3でPostgreSQLにアクセスする。という記事を見かけます。
# pip3 install psycopg2
などとしても、色々とエラーが表示されてインストールされません。
そこで、エラーメッセージ中に表示されていた
http://initd.org/psycopg/docs/install.html
にアクセスして方法を見つけましたので紹介します。
マシンの環境
- CentOS Linux release 7.7.1908 (Core)
- pgdg12リポジトリによるpostgresql12.x86_64 12.2-1PGDG.rhel7
- baseリポジトリによるpython3.x86_64 3.6.8-10.el7
対処
Build prerequisitesに書かれていることを順に試してみます。
-
gcc がインストールされていなければインストールする。
# yum install gcc
-
python3-develがインストールされていなければインストールする。
# yum install python3-devel
-
libpq-devをインストールする。って書いてあるけど、これは、postgresql12-develになる。
# yum install postgresql12-devel
-
PATHに、pg_configの入っているディレクトリを指定する。
# export PATH=/usr/pgsql-12/bin:$PATH
結果
これで、pip3でpsycopg2がインストールできる。
# pip3 install psycopg2
WARNING: Running pip install with root privileges is generally not
a good idea. Try `pip3 install --user` instead.
Collecting psycopg2
Using cached https://files.pythonhosted.org/packages/84/d7/6a93c99b5ba4d4d22daa3928b983cec66df4536ca50b22ce5dcac65e4e71/psycopg2-2.8.4.tar.gz
Installing collected packages: psycopg2
Running setup.py install for psycopg2 ... done
Successfully installed psycopg2-2.8.4
確認
# python3
Python 3.6.8 (default, Aug 7 2019, 17:28:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more
information.
>>> import psycopg2
>>> quit()
#
これで、上手く、psycopg2がインストールできました。