Devstack失败,出现openstackclient.shell例外饲养:Python

2024-05-19 22:46:34 发布

您现在位置:Python中文网/ 问答频道 /正文

最近我在尝试devstack时遇到了这个错误:

ERROR: openstackclient.shell Exception raised: python-neutronclient 2.3.9.40.g9ed73c0 is installed but python-neutronclient<3,>=2.3.6 is required by []

我做了一些调查,发现这可能是由python路径问题引起的。 在/opt/stack/directory和/usr/local/lib/python2.7/dist-packages目录下有两套openstack客户机安装(如python neutronclient、pythonovaclient等)。以neutronclient为例,我可以在这两个目录下找到它:

/opt/stack/python中子客户端
以及
/user/local/lib/python2.7/dist-packages/python-neutronclient

我发现python会使用安装在/opt/stack下的客户机:

>>> sys.path
['', '/opt/stack/python-keystoneclient', '/opt/stack/python-glanceclient', ..., '/opt/stack/heat', '/opt/stack/tempest', '/usr/lib/python2.7'....]

为什么python(devstack)不使用/usr/local/lib/python2.7下的包?/opt/stack下的包有问题:egg info/PKG-info中的版本信息不是有效的PEP440版本,例如“2.3.10.dev47.g11deb7f”,这将导致devstack在设置keystone时失败,并出现上述错误:

我不记得我显式地设置了PYTHONPATH变量。python或devstack如何在默认系统python路径之前设置/opt/stack/?我检查了devstack源代码,但没有找到任何有用的信息。有谁能帮忙给点提示吗?谢谢!在


Tags: 路径info目录客户机isstacklibpackages
1条回答
网友
1楼 · 发布于 2024-05-19 22:46:34

我发现在/usr/local/lib/python2.7/dist-packages下有一些*.pth文件,其中一个文件包含一些指向devstack默认目录的项(即/opt/stack/python neutronclient,等等)。这就是为什么这些目录被作为python路径的一部分。还有一些egg链接文件指向/opt/stack下的openstack客户端项目文件夹,例如

~$ cat /usr/local/lib/python2.7/dist-package/python-neutronclient.egg-link
/opt/stack/python-neutronclient

因此,删除那些egg链接文件,并从*.pth中删除不需要的路径项,那么问题就会得到解决。请注意,您可能会将安装在/user/local/lib/python2.7/dist-packages下的openstack客户机包更新到最新版本。您可以手动执行'pip install'或'apt get',或在devstack中相应地设置'LIBS_FROM\GIT',例如:

^{pr2}$

因此devstack将git将这些openstack客户机项目克隆到/opt/stack(默认情况下),然后将这些包安装到/usr/local/lib/python2.7/dist-packages。在

相关问题 更多 >