更新时间:2024-05-07 GMT+08:00

基于Psycopg开发

Psycopg是一种用于执行SQL语句的PythonAPI,可以为GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配GaussDB数据类型。通过灵活的对象适配系统,可以扩展和定制适配。Psycopg2兼容Unicode。

GaussDB数据库提供了对Psycopg2特性的支持,并且支持psycopg2通过SSL模式连接。

表1 Psycopg支持平台

操作系统

平台

Python版本

EulerOS 2.5

  • ARM64位
  • x86_64位

3.8.5

EulerOS 2.9

  • ARM64位
  • x86_64位

3.7.4

EulerOS 2.10、Kylin v10、UnionTech20

  • ARM64位
  • x86_64位

3.7.9

EulerOS 2.11、Suse 12.5

  • ARM64位
  • x86_64位

3.9.11

psycopg2在编译过程中,会链接(link)GaussDB的openssl,GaussDB的openssl与操作系统自带的openssl可能不兼容。如果遇到不兼容现象,例如提示"version 'OPENSSL_1_1_1f' not found",请使用环境变量LD_LIBRARY_PATH进行隔离,以避免混用操作系统自带的openssl与GaussDB依赖的openssl。

例如,在执行某个调用psycopg2的应用软件client.py时,将环境变量显性赋予该应用软件:

export LD_LIBRARY_PATH=/path/to/gaussdb/libs:$LD_LIBRARY_PATH python client.py

其中,/path/to/pyscopg2/lib 表示GaussDB依赖的openssl库所在目录,需根据文件实际存储路径修改。