centos 7 中没有使用 python2.7 的名为 yum 的模块

centos 7 中没有使用 python2.7 的名为 yum 的模块

我必须在 centos 中安装 Python 2.7,因为我在管理不同版本的 Python 时遇到一些问题。但我搞乱了 yum 设置,无法使用它。

安装 Python 的步骤

cd /usr/src
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
tar xzf Python-2.7.18.tgz
cd Python-2.7.18
./configure --enable-optimizations
make install
python -V

输出

Python 2.7.18

当我输入“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.18 (default, Dec  7 2020, 22:27:41) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

我曾提到过类似的问题,例如,我将在这里添加回复。

find / -type f -executable -name 'python2*'

/usr/local/bin/python2.7-config
/usr/local/bin/python2.7

查找/-type f-executable-name'python3*'

/usr/bin/python3.4m
/usr/bin/python3.6m-config
/usr/bin/python3.4
/usr/bin/python3.6
/usr/bin/python3.6m
/usr/bin/python3.6m-x86_64-config

运行 /usr/local/bin/python2.7(这会引发导入错误)

Python 2.7.18 (default, Dec  7 2020, 22:27:41) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import yum
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named yum

which yum| 头 -1

#!/usr/bin/python

然后以 root 身份运行以下命令来创建符号链接

ln -s /usr/local/bin/python2.7 /usr/bin/python 

但是运行 yum 命令时仍然遇到同样的问题。

添加有关 yum 的更多信息,rpm -q yum

yum-3.4.3-168.el7.centos.noarch

检查 yum 是否安装,rpm -V yum-3.4.3-168.el7.centos.noarch.rpm

package yum-3.4.3-168.el7.centos.noarch.rpm is not installed

然后我下载了这个二进制包http://mirror.centos.org/altarch/7/os/aarch64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm这里并使用

rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm

但它说 yum 已经安装

Preparing...                          ################################# [100%]
    package yum-3.4.3-168.el7.centos.noarch is already installed

检查 yum 文件,cat /usr/bin/yum

#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\

更新:

ls -l /usr/bin/python 的输出

lrwxrwxrwx 1 root root 24 Dec  8 09:41 /usr/bin/python -> /usr/local/bin/python2.7

答案1

你已经把所有事情都做得尽可能糟糕了。

首先,你正在运行C社区耳鼻喉科企业操作系统- 你最后要做的是./configuremake。一切都通过包管理器进行管理仅有的否则你就是在自找麻烦。

其次,尝试安装 Python 2.7 的操作是没有意义的,因为这是 CentOS 7 中的默认 Python 版本。正如您现在已经猜到的,许多程序都依赖于它,这就是为什么当您通过手动编译安装/覆盖它时yum会出现问题 - 因为您的“自定义”Python 2.7 安装缺少运行所需的 Python 模块。

幸运的是,自定义编译的程序默认使用前缀/usr/local/并安装在该目录树中。

我建议,在彻底调查后,删除整个文件,/usr/local/bin/*因为它包含您编译的自定义程序。然后重新创建正确的程序链接python

rm -rf /usr/local/bin/*
ln -fs /usr/bin/python2 /usr/bin/python

从系统中注销,然后重新登录。yum应该可以正常工作。

不要再玩编译工具了,使用软件包。换句话说,只使用软件包yum来安装、删除、升级系统上的程序。即使你发现有程序需要打包(可能性很小,使用 pkgs.org 搜索可以确定),最好还是在单独的系统上学习打包和构建软件包。

相关内容