当Ubuntu从17.04升级到17.10时,psycopg2导入错误。

8

在把操作系统升级到Ubuntu 17.10之前,一切都运行得很好。现在我的Django项目无法运行(python manage.py runserver),因为psycopg2无法导入。虽然使用pip已经安装了psycopg2(没有任何更改),但确切的错误是:

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
4个回答

11

重新安装psycopg2并使用二进制版本。

sudo pip uninstall psycopg2    
pip install psycopg2-binary

8

顺便提一下,这里有安装选项的详细说明:http://initd.org/psycopg/docs/install.html#binary-install-from-pypi - Petr Gladkikh

4

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


3
谢谢您的回答!我之前尝试重新安装psycopg2,但仍然出现相同的错误。但是当我尝试使用"pip install psycopg2 --no-cache-dir"命令时,它成功了!! - Prashant Pandey

0
我也遇到了同样的问题。显然,glibc二进制文件存在兼容性问题。以下方法对我有效: pip uninstall psycopg2 sudo apt-get install postgresql-server-dev-X.Y(如果尚未安装) pip install --no-binary :all: psycopg2
来源:Problem loading psycopg2 with glibc 2.26

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接