安装
如果您使用受支持的系统,可以这样:
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 安装。
“本地安装”会产生一个可执行且可维护的库。该库将包括高效的 C 模块,并将链接到系统库(libpq
、libssl
…),以便系统库的升级也将升级 Psycopg 3 使用的库。这是为生产环境安装 Psycopg 的首选方法。
为了执行本地安装,您需要一些先决条件:
- 一个 C 编译器,
- Python 开发用头文件(例如
python3-dev
包)。 - PostgreSQL 客户端开发用头文件(例如
libpq-dev
包)。 - 环境变量
PATH
中包含有pg_config程序。
您必须能够对扩展构建进行故障排除,例如,您必须能够读取编译器的错误消息。如果您不能,请不要尝试此操作并采用二进制安装。
如果构建先决条件已满足,则可以运行:
pip install "psycopg[c]"
如果您只是安装:
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.py
,pyproject.toml
依赖项等等),则可能应指定以下项之一:
- 如果您的项目是一个库,请添加对
psycopg
的依赖关系。这将确保您的库将具有带有正确接口的psycopg
包,并将选择特定实现的可能性留给库的最终用户。 - 如果您的项目是完整的应用程序(例如,在服务器上运行的服务),则可以在确保满足先决条件之后(例如,在主机中安装了相关的库和工具),要求特定的实现,例如
psycopg[c]
。
在这两种情况下,您都可以使用依赖指定项指定要使用的 Psycopg 版本。
如果要确保使用特定的实现,可以指定环境变量PSYCOPG_IMPL
。如果指定的实现不可用,导入库将失败。请参阅 pq 模块实现。