新 Fedora 27 中 /usr/bin/python3“_Py_CoerceLegacyLocale”中的符号查找错误

问题描述 投票:0回答:3

感谢您的耐心等待,这个问题在互联网上的任何地方都没有得到解答,我找不到任何关于如何解决它的线索。 问题是:

[jv@xp ~]$ /usr/bin/python3
/usr/bin/python3: symbol lookup error: /usr/bin/python3: undefined symbol: _Py_CoerceLegacyLocale

在这发生之前,我正在修复 anaconda3 python 环境的问题,所以那里可能存在连接。

所有打包系统(yum,dnf)依赖的是新的Fedora 27系统python3,所以如果我无法修复它,最好重新安装整个系统。(这可能意味着与一脸失败,低头我会回到薄荷:-/)

这位先生正在与同样的问题作斗争:

https://forums.fedoraforum.org/showthread.php?316109-f26-DNF-error-undefined-symbol-_Py_CoerceLegacyLocale

感谢您的帮助。任何线索和建议将不胜感激。

linux python-3.x fedora
3个回答
5
投票

我在通过 conda 安装 python3 后遇到了同样的问题。 我为解决这个问题所做的是:

1/ 使用以下命令重新安装 python3、python3-libs 和 system-python:

python2 /usr/bin/yum reinstall python3-libs

(注意你仍然可以用 python2 运行 dnf 和 yum,假设只有 python3 坏了)

2/ 删除以下文件:

  • /usr/lib/libpython3.so
  • /usr/lib/libpython3.6m.so
  • /usr/lib/libpython3.6m.so.1.0

命令

rpm -qf libpython3.6m.so
表示这些文件不属于任何包。它们肯定是通过 conda 安装的。 问题是 python3 可执行文件加载了这些共享库而不是好的共享库。


0
投票

虽然

conda update intel-openmp
对我不起作用;

conda install --channel conda-forge llvm-openmp
为我工作。


0
投票

当我在 RHEL8 系统上构建和安装自己的 Python-3.6.15 时,这发生在我身上。

问题是 Red Hat 将 PEP538 反向移植到他们的 python3.6 RPM。在

python3-3.6.8 SRPM
中寻找00262-pep538_coerce_legacy_c_locale.patch,这是定义这些LegacyLocale函数的地方。

如果你想重建 Python 3.6 并最终得到一个与 RHEL8 运行时的其余部分兼容的

libpython3.6m.so
,你将需要应用这个补丁。

© www.soinside.com 2019 - 2024. All rights reserved.