我必须在 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社区耳鼻喉科企业操作系统- 你最后要做的是./configure
和make
。一切都通过包管理器进行管理仅有的否则你就是在自找麻烦。
其次,尝试安装 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 搜索可以确定),最好还是在单独的系统上学习打包和构建软件包。