python - 无法在 fedora 27 上从 python3 导入 psycopg2

标签 python postgresql psycopg2 fedora

我刚刚升级到 Fedora 27,并且无法让 psycopg2 工作。

我非常感谢任何人可以提供的帮助。

作为一个简单的测试用例,我一直在执行
>>导入psycopg2
在交互式 shell 中。这对于 Python 2.7 工作正常,但对于 Python 3.x 则失败。

使用Python 3.4 和 3.5,我收到消息:

Traceback (most recent call last): File "", line 1, in ImportError: No module named 'psycopg2'

使用Python 3.6,我看到:

Traceback (most recent call last): File "", line 1, in File "/home/jazcap53/.local/lib/python3.6/site-packages/psycopg2/init.py", line 50, in from psycopg2._psycopg import ( # noqa ImportError: /home/jazcap53/.local/lib/python3.6/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

我从 DVD-ROM 安装了 Fedora 27。我发现 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

PS:如果我在错误的地方问这个问题,请引导我到正确的地方。

编辑: 我注意到:

/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
但不是 psycopg2 本身

最佳答案

您可能已经注意到,Python 的每个版本都有自己的包层次结构。因此,Python 3.6 上的安装将无法让您访问 3.4 和 3.5。

话虽如此,Python 3.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/

相关文章:

postgresql - ALTER TABLE,在非空列中设置空值,PostgreSQL 9.1

python - 在python中,如何更改列表的元素数据类型

python - 值错误: Error parsing datetime string NumPy

python - 在 python 3.2 中启动和停止记录器

python - 获取numpy.ndarray对象不是可调用错误

python - Python/Django Web 应用程序中数据库访问查询的性能优化

sql - 如果未找到引用表中的值,则在表中插入行

django - 使用 psycopg2 将 django 与 postgresql 连接起来

python - 如何从 psycopg2 导入 "connection"类?

python - 替换实例方法