我在Mac系统上做了一个简单的pip install psycopg2。它安装正确,但是当我尝试使用psycopg2时出现错误:

Reason: Incompatible library version: _psycopg.so requires version 1.0.0 or later, but libssl.0.9.8.dylib provides version 0.9.8
pip freeze恰好显示psycopg2==2.4.5。我已经在多个virtualenvs上安装了psycopg2,但这是我第一次看到这样的错误。我尝试卸载并重新安装,结果相同。请帮忙

最佳答案

升级到Mountain Lion后,我遇到了类似的问题。

不要按照Slack的建议复制libssl。*文件,而是确保/usr/lib/libssl.dylib实际上是到该库的最新版本的软链接(soft link)。

例如,在我的机器上,ls -l /usr/lib/libssl*给出:

lrwxr-xr-x  1 root  wheel    46B Jun 27 15:24 /usr/lib/libssl.1.0.0.dylib -> /Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib
lrwxr-xr-x  1 root  wheel    27B Jul 30 10:31 /usr/lib/libssl.dylib -> /usr/lib/libssl.1.0.0.dylib

如果libssl.dylib没有链接到错误版本提到的版本,请确保您具有该库的版本,然后确保/usr/lib/libssl.dylib指向它,而不是较旧的版本。

如果链接不存在,请像这样创建它
sudo ln -s library_to_link_to link_to_create

当然,请使用适合您机器的位置。对我来说,结果是:
sudo ln -s /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib

编辑:

似乎有些人在解决我的部分问题。即,删除这些重要的库甚至会暂时导致操作系统出现问题。

对于Purrell's answer,请确保在使用-fs命令时包括ln标志,这有助于确保库在短时间内不会丢失。例如。,
sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib
sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib

10-05 19:08