00.17.Linux系统Keystone数据库同步错误问题

问题描述

在执行Keystone数据库同步时,出现以下错误信息:
`[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.10.2) or chardet (3.0.4) doesn't match a supported version!
RequestsDependencyWarning)
Traceback (most recent call last):
File "/usr/bin/keystone-manage", line 6, in <module>
from keystone.cmd.manage import main
File "/usr/lib/python2.7/site-packages/keystone/cmd/manage.py", line 19, in <module>
from keystone.cmd import cli
File "/usr/lib/python2.7/site-packages/keystone/cmd/cli.py", line 29, in <module>
from keystone.cmd import bootstrap
File "/usr/lib/python2.7/site-packages/keystone/cmd/bootstrap.py", line 17, in <module>
from keystone.common import driver_hints
File "/usr/lib/python2.7/site-packages/keystone/common/driver_hints.py", line 18, in <module>
from keystone import exception
File "/usr/lib/python2.7/site-packages/keystone/exception.py", line 20, in <module>
import keystone.conf
File "/usr/lib/python2.7/site-packages/keystone/conf/__init__.py", line 20, in <module>
from osprofiler import opts as profiler
File "/usr/lib/python2.7/site-packages/osprofiler/opts.py", line 18, in <module>
from osprofiler import web
File "/usr/lib/python2.7/site-packages/osprofiler/web.py", line 20, in <module>
from osprofiler import profiler
File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 27, in <module>
from osprofiler import notifier
File "/usr/lib/python2.7/site-packages/osprofiler/notifier.py", line 16, in <module>
from osprofiler.drivers import base
File "/usr/lib/python2.7/site-packages/osprofiler/drivers/__init__.py", line 4, in <module>
from osprofiler.drivers import loginsight # noqa
File "/usr/lib/python2.7/site-packages/osprofiler/drivers/loginsight.py", line 25, in <module>
import requests
File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 94, in <module>
from urllib3.exceptions import DependencyWarning
ImportError: cannot import name DependencyWarning

该错误是由于requests库与其依赖库urllib3chardet版本不兼容,导致keystone-manage命令执行失败。

解决方法
步骤 1:卸载现有的urllib3chardet

首先,卸载系统中安装的urllib3chardet库,以确保这些库的版本与requests库兼容。
[root@controller ~]# pip uninstall urllib3 [root@controller ~]# pip uninstall chardet

步骤 2:安装兼容版本的requests

卸载完毕后,重新安装requests库,确保它与urllib3chardet的版本兼容。
[root@controller ~]# pip install requests

步骤 3:安装pip(如果pip未找到命令)

如果系统中没有安装pip,需要先安装pip工具。首先,下载get-pip.py脚本:
[root@controller ~]# wget https://bootstrap.pypa.io/get-pip.py
然后使用Python安装pip
[root@controller ~]# python get-pip.py

步骤 4:验证pip安装

安装完成后,验证pip是否安装成功,并查看其版本:
[root@controller ~]# pip -V

步骤 5:查找并创建pip软链接

如果pip安装完成,但系统找不到pip命令,可以通过查找pip的安装路径并创建软链接来解决:
[root@controller ~]# find / -name pip
[root@controller ~]# ln -s /usr/lib/python2.7/site-packages/pip /usr/bin/pip

注意事项

通过卸载不兼容的urllib3chardet库,并重新安装requests库,能够解决在执行keystone-manage db_sync命令时遇到的ImportError: cannot import name DependencyWarning问题。如果pip工具未安装,可以按照上述步骤安装pip并创建软链接,确保pip命令可用。

posted @ 2019-12-09 14:25  雾里看浮光(南知意)  阅读(1512)  评论(1)    收藏  举报