Intro: I’m trying to migrate our Trac SQLite to a PostgreSQL backend, to do that I need psycopg2. After clicking past the embarrassing rant on http://www.initd.org I downloaded the latest version and tried running setup.py install. This didn’t work, telling me I needed mingw. So I downloaded and installed mingw.
Problem: I now get the following error when running setup.py build_ext --compiler=mingw32 install:
running build_ext building 'psycopg2._psycopg' extension writing build\temp.win32-2.4\Release\psycopg\_psycopg.def C:\mingw\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.4\Release\psycopg \psycopgmodule.o build\temp.win32-2.4\Release\psycopg\pqpath.o build\temp.win32- 2.4\Release\psycopg\typecast.o build\temp.win32-2.4\Release\psycopg\microprotoco ls.o build\temp.win32-2.4\Release\psycopg\microprotocols_proto.o build\temp.win3 2-2.4\Release\psycopg\connection_type.o build\temp.win32-2.4\Release\psycopg\con nection_int.o build\temp.win32-2.4\Release\psycopg\cursor_type.o build\temp.win3 2-2.4\Release\psycopg\cursor_int.o build\temp.win32-2.4\Release\psycopg\lobject_ type.o build\temp.win32-2.4\Release\psycopg\lobject_int.o build\temp.win32-2.4\R elease\psycopg\adapter_qstring.o build\temp.win32-2.4\Release\psycopg\adapter_pb oolean.o build\temp.win32-2.4\Release\psycopg\adapter_binary.o build\temp.win32- 2.4\Release\psycopg\adapter_asis.o build\temp.win32-2.4\Release\psycopg\adapter_ list.o build\temp.win32-2.4\Release\psycopg\adapter_datetime.o build\temp.win32- 2.4\Release\psycopg\_psycopg.def -LC:\Python24\libs -LC:\Python24\PCBuild -Lc:/P ROGRA~1/POSTGR~1/8.3/lib -lpython24 -lmsvcr71 -lpq -lmsvcr71 -lws2_32 -ladvapi32 -o build\lib.win32-2.4\psycopg2\_psycopg.pyd C:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot fin d -lpq collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1
What I’ve tried – I noticed the forward slashes in the -L option, so I manually entered my PostgreSQL lib directory in the library_dirs option in the setup.cfg, to no avail (the call then had a -L option with backslashes, but the error message stayed the same).
Have you tried the binary build of psycopg2 for windows? If that works with your python then it mitigates the need to build by hand.
I’ve seen random people ask this question on various lists and it seems one recommendation is to build postgresql by hand to work around this problem.