2

在 openstack 设置中尝试 nova-list cli 命令时出现以下错误。NoneType'对象没有属性' getitem '

 DEBUG (shell:777) 'NoneType' object has no attribute '__getitem__'
    Traceback (most recent call last):
      File "/opt/stack/python-novaclient/novaclient/shell.py", line 774, in main
        OpenStackComputeShell().main(map(strutils.safe_decode, sys.argv[1:]))
      File "/opt/stack/python-novaclient/novaclient/shell.py", line 685, in main
        self.cs.authenticate()
      File "/opt/stack/python-novaclient/novaclient/v1_1/client.py", line 169, in authenticate
        self.client.authenticate()
      File "/opt/stack/python-novaclient/novaclient/client.py", line 382, in authenticate
        auth_url = self._v2_auth(auth_url)
      File "/opt/stack/python-novaclient/novaclient/client.py", line 469, in _v2_auth
        return self._authenticate(url, body)
      File "/opt/stack/python-novaclient/novaclient/client.py", line 484, in _authenticate
        return self._extract_service_catalog(url, resp, respbody)
      File "/opt/stack/python-novaclient/novaclient/client.py", line 307, in _extract_service_catalog
        self.auth_token = self.service_catalog.get_token()
      File "/opt/stack/python-novaclient/novaclient/service_catalog.py", line 29, in get_token
        return self.catalog['access']['token']['id']
    TypeError: 'NoneType' object has no attribute '__getitem__'
    ERROR: 'NoneType' object has no attribute '__getitem_

_'

这是什么意思?我的 openstack 设置有什么问题,还是一些与 python 相关的错误?

4

2 回答 2

7

从字面上看,'NoneType' object has no attribute...意味着您正在尝试访问属性或调用具有 value 的东西的方法None

实际上,这意味着您可能在某个地方有一个错误,即在为其分配值之前使用变量,或者使用正在返回的函数中的值None。调试这个问题的第一步是问自己“为什么这个变量设置为None?”。

在这种特定情况下,要么self.catalogself.catalog['access']要么self.catalog['access']['token']None

于 2014-06-09T12:57:51.970 回答
0

错误信息

TypeError: 'NoneType' object has no attribute '__getitem__'

原因

在另一个函数调用的参数列表中调用 void 方法,导致我出现“NoneType”错误。

解决方案

为了解决这个问题,我只是让 void 方法在另一个函数的参数列表中返回我需要的值。

于 2017-09-21T06:59:27.340 回答