jkehler/awslambda-psycopg2

AWS Lambda with psycopg2 (compiled with PostgreSQL 13.4)

billglennon opened this issue · 4 comments

I am basically trying to do the following for AWS Lambda for psycopg2.

I am trying with the following source code bases and I get the error below.
Python 3.8.1
Psycopg2 2.9.3
PostgreSQL 13.4

psycopg2 setup.cfg config file
psycopg2-2.9.3/setup.cfg
pg_config =
static_libpq = 1
libraries = ssl crypto

However, when I try with PostgreSQL 11.14 it works.
Python 3.8.1
Psycopg2 2.9.3
PostgreSQL 11.14

I also tried with PostgreSQL 12.9 and I get the same error.

Of the web sites I found with this process, all the database versions were PostgreSQL 11 or lower.

Did something change in 12 and above to cause this issue with psycopg2?

Any help/pointers would be appreciated.

Error Message:

import psycopg2
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.8/site-packages/psycopg2-2.9.3-py3.8-linux-x86_64.egg/psycopg2/init.py", line 51, in
from psycopg2._psycopg import ( # noqa
ImportError: /usr/local/lib/python3.8/site-packages/psycopg2-2.9.3-py3.8-linux-x86_64.egg/psycopg2/_psycopg.cpython-38-x86_64-linux-gnu.so: undefined symbol: pg_tolower

I'm experiencing the same issue with

  • PosgreSQL 12.8
  • Psycopg2 2.9.3
  • Python 3.9
    I'm on Amazon Linux 2.

Any updates for this?

I also am getting the above error message. Trying to compile Psycopg2 on Amazon Linux 2 with the versions:

PosgreSQL 13.7
Psycopg2 2.9.3
Python 3.9

Things I've tried:

  • Lower versions of Postgres. But unable to generate a compiled version that successfully runs without this Psycopg2 error message for anything above Postgres 11.x.
  • Psycopg2.8.5
  • Downloading/installing from source, as well as using yum install.

Same errors each time.

I managed to go with the command:

pip3 install --target ./package psycopg2-binary

Then I copy everything from package directory and place it at level of my lambda code. So I get at top level of lambda directories psycopg2 and psycopg2.binaries.lib, packed as zip and upload it. Looks like it is easier than use this project.