我正在尝试使用 python 中的 NovaClient API 在 openstack 上实例化 VM。更准确地说是使用 mq-rabbit celery 任务。
不幸的是,我收到了这个错误:
from novaclient import client
File "/usr/local/lib/python2.7/dist-packages/novaclient/__init__.py", line 15, in <module>
import pbr.version
ImportError: No module named version
我已经用一个简单的 python 文件进行了测试,它可以工作,我的 VM 已经创建,但是当我尝试通过 celery tash 执行此操作时,我得到了上面的错误......
我的版本是最新的 python-novaclient-6.0.2,但由于我们的服务器是版本 2,我使用版本 2 API。这是我在 celery 任务中的代码,当我在 python shell 中测试时,它可以工作:
loader = loading.get_plugin_loader('password')
auth = loader.load_from_options(auth_url=auth_url, username=username, password=password, project_name=tenant_name)
sess = session.Session(auth=auth)
nova = client.Client('2', session=sess) #API version and session