ubuntu 升级到 17.10(从 17.04)时出现 psycopg2 导入错误

psycopg2 import error when ubuntu upgraded to 17.10 (from 17.04)

一切正常,直到我将 OS 升级到 Ubuntu 17.10。现在我的 Django 项目不会 运行 (python manage.py 运行server) 因为 psycopg2 不会导入。 psycopg2 已经安装了 pip(那里没有任何改变)。确切地说,这是错误:

lib/python3.5/site-packages/psycopg2/.libs/libresolv-2-c4c53def.5.so: 
symbol __res_maybe_init, version GLIBC_PRIVATE not defined in file 
libc.so.6 with link time reference

尝试重新安装 psycopg2。看起来动态链接的依赖项发生了变化。数据库适配器通常有编译组件,这些组件是针对系统文件编译的,这些文件可以在更新时更改,因此在主要 OS 升级时,您几乎肯定必须重新编译 pip 安装版本。

随着 psycopg2 2.7.3.1 中新二进制包的发布a problem of the wheel build tool 修复了这个问题

重新安装 psycopg2 并使用二进制文件。

sudo pip uninstall psycopg2    
pip install psycopg2-binary

我遇到了同样的问题。显然,glibc 二进制文件存在兼容性问题。以下对我有用:

pip uninstall psycopg2

sudo apt-get install postgresql-server-dev-X.Y (if not already installed)

pip install --no-binary :all: psycopg2

来源:Problem loading psycopg2 with glibc 2.26