centos7 python3 yum报错 /usr/libexec/urlgrabber-ext-down

CentOS 7安装Python 3并与Python 2共存后,创建软连接并修改yum顶部指向Python 2.7,运行yum仍报错。解决方案是将/usr/libexec/urlgrabber - ext - down和/usr/bin/yum - config - manager中的/usr/bin/python改为/usr/bin/python2.7。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS 7安装Python到3.5和Python2共存后,需要在/usr/bin/python创建了一个指向Python 3的软连接,

然后将/usr/bin/yum的顶部的:
!/usr/bin/python
改成了
!/usr/bin/python2.7
后,运行yum,还是出现了以下错误:
[root@master ~]# yum -y groupinstall “X Window System”
 File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax


解决方案:
1.
vim /usr/libexec/urlgrabber-ext-down
将/usr/bin/python改为/usr/bin/python2.7。
2.
vim /usr/bin/yum-config-manager
解决办法同上: #!/usr/bin/python换成 #!/usr/bin/python2.7 

<think>好的,我需要解决用户遇到的ModuleNotFoundError: No module named &#39;urlgrabber&#39;错误。首先,我得回忆一下urlgrabber是什么。根据引用[5],用户可能在CentOS系统上升级了Python,导致yum出现问题,因为yum依赖于Python 2.6或2.7,而升级后可能路径或模块不兼容。 用户的问题是关于urlgrabber模块缺失。首先,我应该检查这个模块属于哪个软件包。在CentOS或RHEL系统中,urlgrabber通常包含在urlgrabber这个RPM包中,或者可能是yum的一个依赖。根据引用[5]中的例子,当用户升级Python后,yum可能无法找到正确的模块,因为yum仍然使用旧版本的Python路径。 可能的解决步骤包括:1. 确认Python版本是否正确配置,尤其是yum使用的Python路径是否指向系统自带的版本(如/usr/bin/python2.7)。如果用户将默认Python更改为新安装的版本,可能需要修改yum的脚本,使其指向原来的Python。例如,在yum脚本的第一行指定#!/usr/bin/python2.7。2. 安装urlgrabber包。可能需要使用yum或dnf来安装,但此时yum本身可能无法运行,因此需要手动下载或修复Python环境。3. 检查是否有符号链接错误,确保模块路径正确。 另外,引用[3]中提到安装libffi-devel解决_ctypes的问题,这可能与模块编译有关,但当前问题更可能与环境路径有关。引用[5]提到将Python的路径恢复,比如将新安装的Python移到/usr/bin/python,而原来的备份为python2.6.6。如果用户升级Python后没有正确处理系统工具的依赖,可能导致此类问题。 总结解决步骤:首先恢复yum使用的Python解释器到系统原版本,确保yum能正常运行。然后,如果需要urlgrabber模块,使用系统包管理器安装。如果用户确实需要新版本Python,可能需要为yum单独配置使用旧版Python,避免冲突。</think>### 解决 Python 中 ModuleNotFoundError: No module named &#39;urlgrabber&#39; 的方法 #### 问题原因 `urlgrabber` 是 `yum` 包管理工具的核心依赖模块,通常存在于 CentOS/RHEL 系统的默认 Python 2.x 环境中。错误可能由以下原因引起: 1. **Python 环境冲突**:手动升级或替换了系统默认的 Python 版本(如将 Python 3 设为默认),导致 `yum` 无法找到原 Python 2.x 的模块[^5]。 2. **模块缺失**:`urlgrabber` 未正确安装或路径配置错误。 --- #### 解决步骤 ##### 方法 1:恢复系统 Python 解释器路径(推荐) 1. **检查当前 Python 链接**: ```bash ls -l /usr/bin/python ``` 若输出指向 Python 3(如 `/usr/bin/python -> python3.7`),需修复为系统原 Python 2.x。 2. **恢复默认 Python 链接**: ```bash sudo mv /usr/bin/python /usr/bin/python3 # 备份当前链接 sudo ln -s /usr/bin/python2.7 /usr/bin/python # 重新链接到 Python 2.7 ``` 3. **验证 `yum` 功能**: ```bash yum update # 应不再报错 ``` ##### 方法 2:手动安装 `urlgrabber` 若需保留新 Python 版本为默认,需单独为系统工具配置 Python 2.x 环境: 1. **安装 `urlgrabber` 依赖**: ```bash sudo yum install -y urlgrabber # 使用 Python 2.x 的 yum 安装 ``` 2. **修改 `yum` 脚本的 Python 解释器**: ```bash sudo vi /usr/bin/yum ``` 将首行 `#!/usr/bin/python` 改为 `#!/usr/bin/python2.7`。 --- #### 验证修复 ```bash python -c "import urlgrabber" # 新 Python 环境可能仍缺失,但 yum 应正常 yum list installed | grep urlgrabber # 确认模块已安装 ``` ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值