我已经使用官方仓库中的最新版本在64位Ubuntu 14.04 LTS上安装了devstack。
[每当我在终端中运行openstack --help
时,用法,描述和可选参数都将正常显示,但是除2〜4个命令之外的所有其他命令都将显示如下:
Could not load EntryPoint.parse('server_show = openstackclient.compute.v2.server:ShowServer')
Could not load EntryPoint.parse('server_ssh = openstackclient.compute.v2.server:SshServer')
Could not load EntryPoint.parse('server_suspend = openstackclient.compute.v2.server:SuspendServer')
正在运行openstack --debug --help
表明这些问题的根源[[似乎是python的版本冲突(所有命令共享最后两行):
Could not load EntryPoint.parse('backup_list = openstackclient.volume.v1.backup:ListBackup')
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/cliff/help.py", line 22, in __call__
factory = ep.load()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2369, in load
self.require(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2386, in require
items = working_set.resolve(reqs, env, installer)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 851, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
VersionConflict: (python-neutronclient 3.0.0 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('python-neutronclient<3,>=2.6.0'))
Could not load EntryPoint.parse('backup_restore = openstackclient.volume.v1.backup:RestoreBackup')
尝试解决我仔细检查了一下,并安装了python 2.7.6和3.4.3。按照this answer to an unrelated question,我设置了alias python=python2
,但这似乎没有任何改变。退回alias python=python3
也无济于事。 (由于[C0]显示正确的版本号,因此别名正在运行。)
我找到了另一个人python --version
,但没有人评论他们的帖子。
我怀疑此错误可能是配置/安装问题的症状,该问题导致其他基本命令显示异常行为。有什么办法可以解决?
防止此问题的最佳方法是将
virtual environment与python版本一起使用。 [https://github.com/openstack/requirements/commit/840d85eb5301cc63225f1fd7fbdb4f9ca2cc8489]
virtualenv doc或根据您对virtualenv -p $(which <python2 / python3> ) <en_vname>
的尝试,执行alias
或alias pip=pip2
,它将起作用。
如果没有任何效果,则从站点软件包中删除所有特定的已安装软件包(您或您的脚本之前已安装)。您将使用alias pip=pip3
或site-package path
命令找到pip --version
,然后重新安装该软件包。