AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1798270
Accepted
King David
King David
Asked: 2023-07-21 13:08:11 +0800 CST2023-07-21 13:08:11 +0800 CST 2023-07-21 13:08:11 +0800 CST

在 RHEL 8 上工作时没有名为 yum 的模块

  • 772

由于我们的应用程序适用于python2RHEL 8,因此我们需要迁移到 RHEL 8

在 RHEL 8 机器上安装后python2,我们看到以下内容:

rpm -qa | grep python2
python2-pip-9.0.3-19.module+el8.6.0+13001+ad200bd9.noarch
python2-setuptools-wheel-39.0.1-13.module+el8.4.0+9442+27d0e81c.noarch
python2-pip-wheel-9.0.3-19.module+el8.6.0+13001+ad200bd9.noarch
python2-2.7.18-11.module+el8.7.0+15681+7a92afba.x86_64
python2-libs-2.7.18-11.module+el8.7.0+15681+7a92afba.x86_64
python2-setuptools-39.0.1-13.module+el8.4.0+9442+27d0e81c.noarch

但是当我们尝试使用 时import yum,我们会收到有关“没有名为 yum 的模块”的错误,并显示以下输出:

python
Python 2.7.18 (default, Jun 17 2022, 07:56:00)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-13)] 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

yum 安装的 rpm 为:

rpm -qa | grep yum
yum-4.4.2-11.el8.noarch
yum-utils-4.0.18-4.el8.noarch

yum 显示为:

more /usr/bin/yum
#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   %s

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:
%s

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

""" % (sys.exc_value, sys.version)
    sys.exit(1)

sys.path.insert(0, '/usr/share/yum-cli')
try:
    import yummain
    yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
    print >> sys.stderr, "\n\nExiting on user cancel."
    sys.exit(1)

从pip2列表中我们得到这个输出:

pip2 list
pip (9.0.3)
setuptools (39.0.1)

那么为什么我们会收到有关 的错误 No module named yum?

https://www.getpagespeed.com/solutions/python-scripts-running-on-rocky-linux-8-can-not-import-yum

https://access.redhat.com/solutions/4289441

python
  • 1 1 个回答
  • 219 Views

1 个回答

  • Voted
  1. Best Answer
    DrZoo
    2023-07-21T13:48:07+08:002023-07-21T13:48:07+08:00

    在查看了StackO 问题后,一个简单的修复可能是对/usr/bin/yum. 将第一行更改!#/usr/bin/python为!#/usr/bin/python2.7

    2023 年 4 月 25 日起,还有一个更新但更复杂的RHEL 客户门户解决方案。

    决议

    导致此问题的可能原因有多种。通常此问题是由于 python 路径设置不正确造成的。python 路径 sys.path 是在 python 初始化期间使用多种方法动态构建的,因此根据相关系统,修复可能是以下之一:

    决议1

    取消设置 PYTHONHOME 变量:

    # unset PYTHONHOME

    对于永久更改,请从 root 的 .bashrc 或 .bash_profile 中删除条目(如果存在)。

    通过运行以下命令重新安装 python 包:

    # rpm -Uvh --replacefiles --replacepkgs python-<version>.rpm

    决议2

    如果没有设置 PYTHONHOME 变量,请检查以确保不存在第三方 python 位于不正确的 /lib/ 位置而不是 /lib64/ 下。检查 python 路径以及 ldd 以查看正在加载哪些文件:

     # python -c "import sys; print(sys.path)" ['',
     '/usr/lib64/python27.zip', '/usr/lib64/python2.7',
     '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk',
     '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload',
     '/usr/lib64/python2.7/site-packages',
     '/usr/lib/python2.7/site-packages']
     
     # ldd /usr/bin/python
         linux-vdso.so.1 =>  (0x00007ffd46b3b000)
         libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007efe38aaf000)  <-----take note of this file location
         libpthread.so.0 => /lib64/libpthread.so.0 (0x00007efe38893000)
         libdl.so.2 => /lib64/libdl.so.2 (0x00007efe3868f000)
         libutil.so.1 => /lib64/libutil.so.1 (0x00007efe3848c000)
         libm.so.6 => /lib64/libm.so.6 (0x00007efe3818a000)
         libc.so.6 => /lib64/libc.so.6 (0x00007efe37dbc000)
         /lib64/ld-linux-x86-64.so.2 (0x00007efe38e7b000)
    

    上面的输出表明了预期的结果。如果您看到加载的是 /usr/lib/python2.7 而不是 /usr/lib64/python2.7,您应该检查以下内容:

    # ls -l /lib/libpython2.7.so.1.0

    # rpm -qf /lib/libpython2.7.so.1.0

    如果您发现 /lib/libpython2.7.so.1.0 中有一个文件,并且它不属于任何包,您应该将该文件移到一边,看看问题是否仍然存在:

    # mv /lib/libpython2.7.so.1.0 /tmp/

    优先的python也可以在/root/.local中,因此请确保该路径下没有python。

    根本原因)

    • PYTHONHOME 变量已设置为系统上的环境变量。
    • Python 库/文件被修改,可以从 rpm -Va 命令的输出中观察到。
    • 第三方 python 模块安装在系统上,可在 ldd /usr/bin/python 命令的输出中找到。
    • 软件包 rpm-python* 未安装。
    • 正在加载第三方 /lib/libpython2.7.so.1.0,而不是正确的系统位置 /lib64/libpython2.7.so.1.0。这会导致sys.path定义的python模块搜索路径设置错误,导致系统找不到已安装的python模块
    • 3

相关问题

  • Conda 在激活环境时中断 -- CommandNotFoundError: No command 'conda conda'

  • Notepad++ 和 Python 文档字符串

  • SCons 使用开发 gcc8 构建

  • Matplotlib - 底图安装错误

  • pip 不会正确更新或安装模块

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve