Updated on 2024-06-03 GMT+08:00

Psycopg-based Development

Psycopg is a Python API used to execute SQL statements and provides a unified access API for GaussDB. Applications can perform data operations based on psycopg. Psycopg2 is the encapsulation of libpq and is implemented using the C language, which is efficient and secure. It provides cursors on both clients and servers, asynchronous communication and notification, and the COPY TO and COPY FROM functions. It supports multiple types of Python out-of-the-box and adapts to GaussDB data types. Through the flexible object adaptation system, you can extend and customize the adaptation. Psycopg2 is compatible with Unicode.

GaussDB supports the psycopg2 feature and allows psycopg2 to be connected in SSL mode.

Table 1 Platforms supported by psycopg

OS

Platform

Python Version

EulerOS V2.0SP5

  • Arm64
  • x86_64

3.8.5

EulerOS V2.0SP9

  • Arm64
  • x86_64

3.7.4

EulerOS V2.0SP10, Kylin V10, and UnionTech20

  • Arm64
  • x86_64

3.7.9

EulerOS V2.0SP11 and SUSE 12.5

  • Arm64
  • x86_64

3.9.11

Huawei Cloud EulerOS 2.0

  • Arm64
  • x86_64

3.9.9

During psycopg2 compilation, OpenSSL of GaussDB is linked. OpenSSL of GaussDB may be incompatible with OpenSSL of the OS. If incompatibility occurs, for example, "version 'OPENSSL_1_1_1f' not found" is displayed, use the environment variable LD_LIBRARY_PATH to isolate the OpenSSL provided by the OS and the OpenSSL on which GaussDB depends.

For example, when the application software client.py that invokes psycopg2 is executed, the environment variable is explicitly assigned to the application software.

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

In the preceding command, /path/to/pyscopg2/lib indicates the directory where the OpenSSL library on which the GaussDB depends is located. Change it as required.