我刚升级到Fedora 27,无法让psycopg2工作。
我非常感谢任何人能提供的帮助。
作为一个简单的测试用例,我一直在执行
>>> import psycopg2
在交互shell上。这对于Python2.7来说很好,但对于Python3.x来说却失败了。
使用Python 3.4和3.5,我得到了这样一条消息:
回溯(最近一次呼叫时间):
文件“”,第1行,在
重要错误:没有名为“psycopg2”的模块
在Python 3.6中,我看到:
回溯(最近一次呼叫时间):
文件“”,第1行,在
文件“/home/jazcap53/.local/lib/python3.6/site packages/psycopg2/init.py”,第50行,在
从psycopg2.导入psycopg(#noqa
ImportError:/home/jazcap53/.local/lib/python3.6/site packages/psycopg2/.libs/libresolv-2-c4c53def.5.so:symbol\u res\u maybe\u init,版本GLIBC\u PRIVATE未在libc.so.6文件中定义,链接时间引用
我从DVD-ROM安装了Fedora27。我发现psycopg2包位于
/usr/lib64/python2.7/site-packages

/home/jazcap53/.local/lib/python3.6/site-packages
我的Python包要么包含在Fedora中,要么通过dnf安装。他们是:

python3-3.6.3-2.fc27.x86_64
python35-3.5.4-1.fc27.x86_64
python34-3.4.7-1.fc27.x86_64
python2-2.7.14-2.fc27.x86_64

我安装的一些相关软件包包括:
python2-devel-2.7.14-2.fc27.x86_64
python3-devel-3.6.3-2.fc27.x86_64
libpqxx-1:5.0.1-2.f27.x86_64
libpqxx-devel-1:5.0.1-2.f27.x86_64
libgcc-7.2.1-2.fc27.x86_64
postgresql-devel-9.6.6-1.fc27.x86_64

备注:如果我在错误的地方问这个问题,请指引我到正确的地方。
编辑:
我注意到:
/usr/lib64/python2.7/site-packages/
包含子目录
psycopg2
psycopg2-2.7.3-py2.7.egg-info
但是
/usr/lib64/python3.4/site-packages/
/usr/lib64/python3.5/site-packages/
不包含与psycopg2

/usr/lib64/python3.6/site-packages/
包含子目录
psycopg2-2.7.3-py3.6.egg-info
但不是它自己

最佳答案

正如您可能已经注意到的,Python的每个版本都有自己的包层次结构。因此,Python 3.6上的安装不会让您访问3.4和3.5。
尽管如此,使用Python3.6的系统标准库似乎有一些问题。一种解决方案是安装时不使用二进制文件,例如:

python3.6 -m pip uninstall psycopg2
python3.6 -m pip install --no-binary :all: psycopg2

要在3.4和3.5上安装psycopg2,您可以使用或不使用--no-binary选项运行这些程序:
python3.4 -m pip install psycopg2
python3.5 -m pip install psycopg2

关于python - 无法在Fedora 27上从python3导入psycopg2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47614728/

10-13 07:23