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

kmbjn2e3  于 2023-05-06  发布在  Linux
关注(0)|答案(3)|浏览(196)

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

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

在此之前,我正在修复anaconda 3 python环境的问题,因此可能存在连接。
所有的打包系统(yum,dnf)都依赖于新的Fedora 27系统python3,所以如果我不能修复它,最好重新安装整个系统。(这可能意味着我会带着失败的表情,低头看,我会回到mint:-/)
这位先生正在与同样的问题作斗争:
https://forums.fedoraforum.org/showthread.php?316109-f26-DNF-error-undefined-symbol-_Py_CoerceLegacyLocale
谢谢你的帮助。任何线索和建议将不胜感激。

dffbzjpn

dffbzjpn1#

我在通过conda安装python3后也遇到了同样的问题。我解决这个问题的方法是:
1/使用以下命令重新安装python3、python3-libs和system-python:
python2 /usr/bin/yum reinstall python3-libs
(note你仍然可以用python 2运行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可执行文件加载的是这些共享库,而不是好的共享库。

6xfqseft

6xfqseft2#

虽然conda update intel-openmp对我不起作用;
conda install --channel conda-forge llvm-openmp为我工作。

q3aa0525

q3aa05253#

当我在RHEL 8系统上构建并安装自己的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并最终获得与RHEL 8运行时的其余部分兼容的libpython3.6m.so,则需要应用此补丁。

相关问题