在 unix 上为 python 3.5 安装 psycopg2 包

Posted

技术标签:

【中文标题】在 unix 上为 python 3.5 安装 psycopg2 包【英文标题】:Installting psycopg2 package for python 3.5 on unix 【发布时间】:2018-07-14 23:08:56 【问题描述】:

我正在尝试安装包 psycopg2 以连接 postgres 数据库,但运行此命令时出现以下错误

python3.5 /usr/local/bin/psycopg2-2.7.3.2/setup.py 安装

*运行 build_ext 构建“psycopg2._psycopg”扩展 创建 build/temp.linux-x86_64-3.5 创建 build/temp.linux-x86_64-3.5/psycopg gcc*** 命令在这里 在 psycopg/psycopgmodule.c:27 包含的文件中: ./psycopg/psycopg.h:30:2: error: #error "Psycopg 需要 PostgreSQL 客户端库 (libpq) >= 9.1"*

当前环境已经有 python 2.4,我们安装了另一个版本 3.5。现在两个版本都存在。

由于没有与外部网络的直接连接,我得到了 psycopg2 软件包的文件并使用 setup.py 进行安装

请建议,我在这里缺少什么以及如何解决这个问题。 请注意,无法连接到互联网,因为这是一个封闭的环境,因此无法使用 PIP 安装包。我的主要目标是连接到 postgres 数据库。

【问题讨论】:

【参考方案1】:

这里的关键是

Psycopg 需要 PostgreSQL 客户端库 (libpq) >= 9.1

确保PATH 上的第一个pg_config 来自PostgreSQL 9.1 或更高版本。

来自the documentation:

Psycopg 是 libpq PostgreSQL 客户端库的 C 包装器。要从您需要的来源安装它:

pg_config 程序:它通常由 libpq-dev 包安装,但有时它不在 PATH 目录中。将它放在 PATH 中可以大大简化安装,因此请尝试运行 pg_config --version

【讨论】:

感谢@Laurenz 的信息。我检查了那个。在文档的相同先决条件下,它说当前 psycopg2 实现支持: - Python 2 版本从 2.6 到 2.7 - Python 3 版本从 3.2 到 3.6 - PostgreSQL 服务器版本从 7.4 到 10 - PostgreSQL 客户端库版本从 9.1 所以我认为它也应该适用于 postgres 8.1 不,不会。 8.1

以上是关于在 unix 上为 python 3.5 安装 psycopg2 包的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 7 64 位机器上为 anaconda 的 python 3.5 安装 cvxopt?

在 ubuntu 上为 python 3.5 扭曲

在 Sun Unix 上为 Perl 安装 DBD::mysql 时出现问题

我尝试在 Windows 10 上为 python 3.8.1 安装 kivy,但出现此错误 [重复]

pip install tensorflow-gpu 在 python 3.5 中安装

win7 64,python 3.5安装scrapy