尝试安装psycopg2时出现"找不到-lpq"

时间:2020-03-06 14:39:11  来源:igfitidea点击:

简介:我正在尝试将Trac SQLite迁移到PostgreSQL后端,为此我需要psycopg2. 在浏览www.initd.org上令人尴尬的选项后,我下载了最新版本并尝试运行" setup.py install"。这没用,告诉我我需要mingw。因此,我下载并安装了mingw。

问题:现在我在运行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.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot fin
d -lpq
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

我已经尝试过-在-L选项中注意到了正斜杠,所以我在setup.cfg的library_dirs选项中手动输入了我的PostgreSQL lib目录,但无济于事(然后,该调用使用了带有反斜杠的-L选项,但是错误消息保持不变)。

解决方案

我们是否尝试过Windows的psycopg2的二进制版本?如果这适用于python,则可以减轻手工构建的需要。

我已经看到随机的人在各种各样的列表上问这个问题,似乎一个建议是手工构建postgresql来解决这个问题。

在Windows上编译扩展可能很棘手。但是,有可用的预编译库:http://www.stickpeople.com/projects/python/win-psycopg/