python pip安装psycopg2安装错误

我在mac系统上做了一个简单的pip安装psycopg2。它安装得很好,但是当我尝试使用psycopg2时,我得到了错误:

原因:库版本不兼容:\u psycopg.so需要1.0.0或更高版本,但libssl.0.9.8.dylib提供0.9.8版本

pip freeze显示的psycopg2==2.4.5恰到好处。我已经在几个VirtualNV上安装了psycopg2,但这是我第一次看到这样的错误。我尝试卸载和重新安装,结果相同。请帮忙

这里被接受的答案是正确的(除了我认为它必须是ln-fs,事实上我认为如果不是(?)的话,它甚至可能会破坏您的操作系统)。在遇到这个问题并处理它之后,我只想收集这个问题和其他lib问题(libcrypto.1.0.0.dylib)的完整解决方案,您将在Mountain Lion和Snow Leopard以及其他系统上遇到Postgres 9.*的问题。这也阻止了我运行psql,它抱怨同样的两个lib

本质上,/usr/lib中需要两个更高版本的lib,libssl和libcrypto。您可以在Postgres lib目录中找到这些lib所需的版本

  • 如果您是OSX并且安装了Postgres的企业数据库版本,那么这将在/Library/PostgreSQL/9.2/lib
  • 对于其他安装类型的Postgres,请在Postgress安装目录中查找lib目录,例如,对于Postgress.app,请在/Applications/Postgres.app/Contents/MacOS/lib中查找lib目录
  • 对于/usr/local/ceral中的brew
  • 在*nix上,无论安装在何处。但是,如果您的发行版仅通过包管理器具有更高版本,请先查看*nix

首先将这两个lib中最新的一个从Postgres lib目录复制到/usr/lib

sudo cp/Library/PostgreSQL/9.2/lib/libssl.1.0.0.dylib/usr/lib
sudo cp/Library/PostgreSQL/9.2/lib/libcrypto.1.0.0.dylib/usr/lib

然后更新(或创建)此libs的/usr/lib符号链接。无论哪种方式,命令都是ln-fs

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

应该是固定的。非常确定ln-fs比删除符号链接并重新创建它要好,因此libssl在不存在时被需要它的东西破坏的可能性更小(它做同样的事情;如果符号链接已经存在,它会首先删除,比您可以键入它的速度更快)。总是提防在/usr/lib上乱搞

发表评论