• 《排错》Python重新安装后,执行yum命令报错


    安装完新的python以后,发现yum命令没法用

    以下是报错信息:

    [root@master ~]# yum
    There was a problem importing one of the Python modules
    required to run yum. The error leading to this problem was:
    
       No module named yum
    
    Please install a package which provides this module, or
    verify that the module is installed correctly.
    
    It's possible that the above module doesn't match the
    current version of Python, which is:
    2.7.5 (default, Apr  2 2020, 13:16:51) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
    
    If you cannot solve this problem yourself, please go to 
    the yum faq at:
      http://yum.baseurl.org/wiki/Faq
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    问题原因:默认 Python 解释器已被修改,指向了一个可能不包含 yum 模块的版本。

    cd /usr/bin
    ll |grep python
    
    • 1
    • 2

    在这里插入图片描述

    幸好对之前的解释器做了备份,那么我们就把yum文件中的配置指向这个备份的就行

    如果您有程序依赖于新安装的 Python 版本,并且您不希望改变 /usr/bin/python 的链接,那么您可以考虑修改 yum 脚本来指向系统原始的 Python 解释器。

    这样,您的程序仍然可以使用新的 Python 版本,而 yum 将使用系统原始的 Python 解释器。

    1. 修改 yum 脚本:

      使用您喜欢的文本编辑器打开 /usr/bin/yum,例如使用 vi:

      vi /usr/bin/yum
      
      • 1

      更改第一行,将 #!/usr/bin/python 替换为系统原始的 Python 解释器的路径,如下:

      #!/usr/bin/python2.7.bak
      
      • 1

      保存并退出编辑器。

    2. 测试 yum:

      现在,尝试运行 yum 命令看是否正常工作。

    这种方法的好处是它不会影响到依赖于新 Python 版本的其他程序。但是,您应该注意任何系统更新或其他可能覆盖 yum 脚本的操作,因为这可能需要您重新应用此修改。

    长期来看,可能考虑配置程序使用虚拟环境 (virtualenv) 或 Docker 容器,这样可以避免全局 Python 版本和系统工具之间的冲突。

    问题:python2.7.bak都已经没有链接了还能用?

    **回答:**对不起,我明白了您的担忧。您正确地指出了 .bak 文件实际上是一个备份的二进制文件,而不是一个符号链接。

    如果 python2.7.bak 是原始的 Python 2.7.5 二进制文件,并且它是完整的和工作的,那么它应该可以被用作 Python 解释器。但首先,我们可以简单地验证它是否仍然是一个有效的 Python 解释器:

    /usr/bin/python2.7.bak --version
    /usr/bin/python2.7.bak -c "import sys; print(sys.version)"
    
    • 1
    • 2

    如果上述命令输出了预期的 Python 版本且没有报错,那么您可以按前面的建议修改 /usr/bin/yum 脚本的 shebang 行为 #!/usr/bin/python2.7.bak

    但是,为了系统的稳定性,这仍然只是一个暂时的解决方案。最终,您可能希望将系统恢复到一个更正常的状态,其中 /usr/bin/python/usr/bin/python2.7 指向系统的默认 Python 解释器,并通过其他方法(如 virtualenv 或容器化)来处理特定应用程序的特定 Python 版本需求。

  • 相关阅读:
    员工犯错,就应该受惩罚吗?
    C++笔记 04
    1058 选择题 (利用ASCII码)
    回归预测 | MATLAB实现基于BP-Adaboost的BP神经网络结合AdaBoost多输入单输出回归预测
    K8s 1.23.6版本部署:kubelet-1.23.6+kube-proxy-1.17.6
    @GrpcServise 注解的作用和使用
    2022最新Java后端面试题(带答案),重点都给画出来了!你不看?
    CSS 样式简写
    Spring Cloud(十):Spring Cloud Skywalking
    如何借助自动化工具落地DevOps|含低代码与DevOps应用实践
  • 原文地址:https://blog.csdn.net/u011197085/article/details/134037564