感谢您的耐心等待,这个问题在互联网上的任何地方都没有得到解答,我找不到任何关于如何解决它的线索。 问题是:
[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,所以如果我无法修复它,最好重新安装整个系统。(这可能意味着与一脸失败,低头我会回到薄荷:-/)
这位先生正在与同样的问题作斗争:
感谢您的帮助。任何线索和建议将不胜感激。
我在通过 conda 安装 python3 后遇到了同样的问题。 我为解决这个问题所做的是:
1/ 使用以下命令重新安装 python3、python3-libs 和 system-python:
python2 /usr/bin/yum reinstall python3-libs
(注意你仍然可以用 python2 运行 dnf 和 yum,假设只有 python3 坏了)
2/ 删除以下文件:
命令
rpm -qf libpython3.6m.so
表示这些文件不属于任何包。它们肯定是通过 conda 安装的。
问题是 python3 可执行文件加载了这些共享库而不是好的共享库。
虽然
conda update intel-openmp
对我不起作用;
conda install --channel conda-forge llvm-openmp
为我工作。
当我在 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
,你将需要应用这个补丁。