我在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