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库与其依赖库urllib3和chardet版本不兼容,导致keystone-manage命令执行失败。
解决方法
步骤 1:卸载现有的urllib3和chardet库
首先,卸载系统中安装的urllib3和chardet库,以确保这些库的版本与requests库兼容。
[root@controller ~]# pip uninstall urllib3 [root@controller ~]# pip uninstall chardet
步骤 2:安装兼容版本的requests库
卸载完毕后,重新安装requests库,确保它与urllib3和chardet的版本兼容。
[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
注意事项
通过卸载不兼容的urllib3和chardet库,并重新安装requests库,能够解决在执行keystone-manage db_sync命令时遇到的ImportError: cannot import name DependencyWarning问题。如果pip工具未安装,可以按照上述步骤安装pip并创建软链接,确保pip命令可用。
本文来自博客园,作者:{雾里看浮光(南知意)},转载请注明原文链接:{https://www.cnblogs.com/JaseLee}

浙公网安备 33010602011771号