我在mac系统上做了一个简单的pip install psycopg2.它安装得很好,但是当我try 使用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正好.我已经在几个VirtualNV上安装了psycopg2,但这是我第一次看到这样的错误.我try 卸载和重新安装,结果相同.请帮忙

推荐答案

升级到山狮后,我遇到了类似的问题.

而不是复制libssl.*根据Slack的建议,确保/usr/lib/libssl.dylib实际上是指向库的最新版本的软链接.

例如,在我的机器上,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

Edit:

似乎有些人对我的部分解决方案有问题.也就是说,删除这些重要的库甚至会暂时导致操作系统出现问题.

Purrell's answer个,确保在使用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

Postgresql相关问答推荐

Postgr不列出运算符和函数

如何确定要与给定转储文件一起使用的pg_Restore版本?

如何在PostgreSQL中更改分区的表空间?

如何获得一起满足数量要求的物品? (WHILE 循环还是 CTE?)postgresql

具有有限字母表的自定义字符串类型

postgres vacuum 是否改进了我的查询计划

postgres 中的模式前缀,被调用元素的范围

连接 Supbase Postgresql 数据库时,Stepzen Graphiql 资源管理器中的主机名解析错误

postgreSQL 中对 utf-8 的 LC_COLLATE 和 LC_CTYPE 支持

SQL数据库表中的多态性?

将 SELECT 结果作为参数传递给 postgreSQL 函数

在 postgreSQL 中更改序列名称

如何只允许一个表的一行?

Rails ActiveRecord - 如何获取两个日期之间的记录

在 PostgreSQL 中显示正在运行的查询的全文

如何将表的一列复制到PostgreSQL中比较相同ID的另一表的列

如何减少存储(缩减)我的 RDS 实例?

如何在 JPA 中使用 Postgres JSONB 数据类型?

错误:索引表达式中的函数必须在 Postgres 中标记为 IMMUTABLE

Rails 5 db 迁移:如何修复 ActiveRecord::ConcurrentMigrationError