How to build statically on Windows - Mailing list psycopg

From Dan Davis
Subject How to build statically on Windows
Date
Msg-id CAFzonYY=gW5cG9oJNGkF-6vzYvNvg9BB1CCfVkeqYGCKzH=9PQ@mail.gmail.com
Whole thread Raw
Responses Re: How to build statically on Windows  (Daniele Varrazzo <daniele.varrazzo@gmail.com>)
List psycopg
Can anyone give me a solution to build psycopg2 statically on Windows?

I have succeeded in building it, but when I run dumpbin /dependents on the generated file (the PYD file), it still depends on libpq.dll even when I pass --static-libpq.

Environment

- OS: Windows 10
- Psycopg version: psycopg2-2.8.5
- Python version: 3.9
- PostgreSQL version: 14.0 (from ZIP)
- pip version: 21.2.4
- Visual C++ version: 2019

Procedure

- Make sure pg_config and psql are in the path
- Download as follows - pip download psycopg2==2.8.5 --no-binary :all:
- Expand the tarball
- Build in that directory as follows (following appveyor.py)

      python setup.py build_ext -l "libpgcommon libpgport"

- Try to verify it is indeed static

      dumpbin /dependents build\lib.win-amd64-3.9\psycopg2\_psycopg.cp39-win_amd64.pyd


Background
The purpose here is 2 fold:

* Backfill support for Python 3.9 and psycopg2 to versions that may have come out before 3.9 was available.
* Make sure our psycopg2 is built against a more recent version of the PostgreSQL client libraries than 9.x

psycopg by date:

Previous
From: Daniele Varrazzo
Date:
Subject: Re: psycopg3 and cur.description behavior
Next
From: Daniele Varrazzo
Date:
Subject: Re: How to build statically on Windows