CentOS7.4系统yum-plugin-copr插件不能正常使用

问题描述

在CentOS7.4系统中,使用yum安装的yum-plugin-copr插件不能正常使用,执行如下命令。
yum copr enable ngompa/snapcore-el7
系统显示类似如下错误。

问题原因

Python的urllib3模块异常。

解决方案

  1. 登录服务器,执行如下命令,查看目录下的文件。
    ls /usr/lib/yum-plugins/
    
    系统显示类似如下,确认有copr.py脚本文件,说明yum-plugin-copr插件安装成功。
    copr.py  copr.pyc  copr.pyo  fastestmirror.py  fastestmirror.pyc  fastestmirror.pyo
    
  2. 进入/usr/lib/yum-plugins/目录,执行python命令,进入Python终端,然后执行如下命令导入测试。
    import copr
    
    系统显示类似如下,urllib3模块异常,导致cpor模块导入失败。
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "copr.py", line 29, in <module>
        import requests
      File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>
        from . import utils
      File "/usr/lib/python2.7/site-packages/requests/utils.py", line 32, in <module>
        from .exceptions import InvalidURL
      File "/usr/lib/python2.7/site-packages/requests/exceptions.py", line 10, in <module>
        from .packages.urllib3.exceptions import HTTPError as BaseHTTPError
      File "/usr/lib/python2.7/site-packages/requests/packages/__init__.py", line 95, in load_module
        raise ImportError("No module named '%s'" % (name,))
    ImportError: No module named 'requests.packages.urllib3'
    
  3. 进一步验证,执行如下命令,发生报错,不能正常导入使用。
    import urllib3
    
    系统显示类似如下,确定是Python的urllib3模块异常,导致yum copr命令使用报错。
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.7/site-packages/urllib3/__init__.py", line 10, in <module>
        from .connectionpool import (
      File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 31, in <module>
        from .connection import (
      File "/usr/lib/python2.7/site-packages/urllib3/connection.py", line 45, in <module>
        from .util.ssl_ import (
      File "/usr/lib/python2.7/site-packages/urllib3/util/__init__.py", line 4, in <module>
        from .request import make_headers
      File "/usr/lib/python2.7/site-packages/urllib3/util/request.py", line 5, in <module>
        from ..exceptions import UnrewindableBodyError
    ImportError: cannot import name UnrewindableBodyError
    
  4. 退出Python终端,进入/usr/lib/python2.7/site-packages/目录,把urllib3相关的目录都进行备份。
  5. 执行如下命令,重新安装urllib3模块。
    pip install urllib3
    
  6. 进入Python终端,执行如下命令,导入urllib3模块,确认没有报错。
    import urllib3
    
  7. 退出Python终端,执行yum copr命令无异常。

适用于

  • 云服务器ECS