我正在尝试在 CentOS 上安装 psycopg2,我按照本 tutorial 中的所有内容从“On with it:安装 Python 2.6”一直到导入 psycopg2,但是当我尝试导入时出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/python2.6/lib/python2.6/site-packages/psycopg2/__init__.py", line 69, in <module>
from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: libpq.so.5: cannot open shared object file: No such file or directory
如何解决这个问题?
psycopg2 是 PostgreSQL 库的 python 包装器,因此您也需要在系统上安装这些库。
由于您使用的是 CentOS,请尝试从命令行安装 postgre 库。
yum install postgresql-libs
Django支持Python 2.4就好了。如果你确实需要 Python 2.6,你也可以使用 EPEL (
yum install python26
) - 但还没有 psycopg2 包。
我按照第一个答案安装 python 库:
yum install postgresql-lib
但它不起作用,所以我还对 devel 和 python 进行了 yum 安装:
yum install postgresql91-devel.x86_64
yum install postgresql91-python.x86_64
不确定是哪一个做的,但我猜是开发者做的。
我遇到了同样的问题,卸载 PostgreSQL 后
python-psycopg2
消失了,并且 yum install python-psycopg2
不再找到该包。这是我再次安装的方法。
首先,安装
pgdg-redhat
yum 存储库:
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
这将创建文件
/etc/yum.repos.d/pgdg-redhat-all.repo
,其中列出了许多存储库(其中大多数似乎已损坏)。 python-psycopg2
的唯一来源似乎是 pgdg11
存储库:
[pgdg11]
name=PostgreSQL 11 for RHEL/CentOS $releasever - $basearch
enabled=0
baseurl=https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-$releasever-$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
现在您可以通过显式启用包含该包的存储库来安装该包:
yum install python-psycopg2 --enablerepo=pgdg11
对于 ubuntu,你会想要
sudo apt-get install python2.7-psycopg2
或者如果使用 python 3
sudo apt-get install python3-psycopg2