Redrock Postgres 文档
主页 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

安装

如果您使用受支持的系统,可以这样:

pip install --upgrade pip           # 升级 pip 到 20.3 以上版本
pip install "psycopg[binary]"

这样你就可以准备开始了。下面,你还可以进一步阅读其他的安装方法。

支持的系统

此处记录的 Psycopg 版本具有对以下方面的官方和测试支持:

  • Python:从版本 3.7 到 3.11
    • 在 Psycopg 3.1 之前支持 Python 3.6
  • PostgreSQL:从版本 10 到 15
  • 操作系统:Linux,macOS,Windows

用于验证受支持系统的测试在 Github 工作流中运行:任何未测试的内容都不受官方支持。这包括:

  • 非官方的 Python 发行版,如 Conda;
  • 替代的 PostgreSQL 实现;
  • macOS 硬件和版本在 Github 工作流中不可用。

如果您使用不受支持的系统,则可能会正常工作(例如,因为数据库可能使用与 PostgreSQL 相同的线路协议),但我们不能保证正确的工作或平稳运行。

二进制安装

开始使用 Psycopg 3 进行开发的最快方法是通过运行以下命令来安装二进制包:

pip install "psycopg[binary]"

这将安装一个包含所有所需库的独立包。您需要最低 20.3 版本的 pip:请事先运行pip install --upgrade pip以更新它。

上述软件包在大多数情况下应该可以工作。不过,在某些情况下它不起作用

如果您的平台不受支持,则应继续进行本地安装纯 Python 安装

Psycopg 3 安装正常吗?一切顺利!现在,您可以继续了解基本模块用法以了解其工作原理。

如果上述方法不起作用,请继续阅读,并且您需要一种不同的方法来安装 Psycopg 3。

有关包之间差异的详细信息,请参阅 pq 模块实现

本地安装

“本地安装”会产生一个可执行且可维护的库。该库将包括高效的 C 模块,并将链接到系统库(libpqlibssl…),以便系统库的升级也将升级 Psycopg 3 使用的库。这是为生产环境安装 Psycopg 的首选方法。

为了执行本地安装,您需要一些先决条件:

  • 一个 C 编译器,
  • Python 开发用头文件(例如python3-dev包)。
  • PostgreSQL 客户端开发用头文件(例如libpq-dev包)。
  • 环境变量PATH中包含有pg_config程序。

您必须能够对扩展构建进行故障排除,例如,您必须能够读取编译器的错误消息。如果您不能,请不要尝试此操作并采用二进制安装

如果构建先决条件已满足,则可以运行:

pip install "psycopg[c]"

纯 Python 安装

如果您只是安装:

pip install psycopg

没有指定额外的[c][binary],你将会获得一个纯粹的Python实现。这对于调试和破解特别方便,但它仍然需要系统库libpq才能运行(将会通过 ctypes 动态导入)。

为了使用纯 Python 安装,您需要在系统中安装库libpq。例如在 Debian 系统上,您可能需要执行:

sudo apt install libpq5
libpq是 PostgreSQL 命令行客户端 psql 用来连接到数据库的客户端库。在大多数系统上,安装 psql 会将libpq作为依赖项进行安装。

如果您无法满足此要求,请按照二进制安装进行操作。

安装连接池

Psycopg 连接池是以和psycopg包不同的独立包进行发布的,以便允许不同的发布周期。

为了使用连接池,您必须使用pip install "psycopg[pool]"安装额外的pool,或者单独安装 psycopg_pool 包,这将允许更精确地指定要安装的版本。

处理依赖关系

如果需要指定项目依赖项(例如,在requirements.txt文件中,setup.pypyproject.toml依赖项等等),则可能应指定以下项之一:

  • 如果您的项目是一个库,请添加对psycopg的依赖关系。这将确保您的库将具有带有正确接口的psycopg包,并将选择特定实现的可能性留给库的最终用户。
  • 如果您的项目是完整的应用程序(例如,在服务器上运行的服务),则可以在确保满足先决条件之后(例如,在主机中安装了相关的库和工具),要求特定的实现,例如psycopg[c]

在这两种情况下,您都可以使用依赖指定项指定要使用的 Psycopg 版本。

如果要确保使用特定的实现,可以指定环境变量PSYCOPG_IMPL。如果指定的实现不可用,导入库将失败。请参阅 pq 模块实现