我已经使用以下命令安装了openstackclient,但不知何故得到了奇怪的python错误,并且无法在此处调试出什么问题,希望python专家可以给我一些线索以找出问题所在。
在CentOS 7.6上安装openstackclient(运行python 2.7)
yum -y install epel-release
yum install python-pip
pip install python-openstackclient
pip install -U decorator
运行openstackclient
# source openrc
# openstack server list --debug
START with options: server list --debug
options: Namespace(access_token='***', access_token_endpoint='', access_token_type='', application_credential_id='', application_credential_name='', application_credential_secret='***', auth_methods='', auth_type='password', auth_url='http://172.28.16.9:5000/v3', cacert=None, cert='', client_id='', client_secret='***', cloud='', code='', debug=True, default_domain='default', default_domain_id='', default_domain_name='', deferred_help=False, discovery_endpoint='', domain_id='', domain_name='', endpoint='', identity_provider='', identity_provider_url='', insecure=None, interface='internalURL', key='', log_file=None, openid_scope='', os_beta_command=False, os_compute_api_version='', os_identity_api_version='3', os_image_api_version='', os_network_api_version='', os_object_api_version='', os_orchestration_api_version='1', os_project_id=None, os_project_name=None, os_volume_api_version='', passcode='', password='***', project_domain_id='', project_domain_name='Default', project_id='', project_name='admin', protocol='', redirect_uri='', region_name='RegionOne', remote_project_domain_id='', remote_project_domain_name='', remote_project_id='', remote_project_name='', service_provider='', service_provider_endpoint='', service_provider_entity_id='', system_scope='', timing=False, token='***', trust_id='', url='', user_domain_id='', user_domain_name='Default', user_id='', username='admin', verbose_level=3, verify=None)
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, u'image_status_code_retries': '5', 'orchestration_api_version': '1', 'timing': False, 'auth_url': 'http://172.28.16.9:5000/v3', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], 'verify': True, u'object_store_api_version': u'1', u'status': u'active', 'verbose_level': 3, 'region_name': 'RegionOne', u'baremetal_introspection_status_code_retries': '5', 'api_timeout': None, 'auth': {'user_domain_name': 'Default', 'project_name': 'admin', 'project_domain_name': 'Default'}, 'default_domain': 'default', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, 'cacert': None, 'password': '***', u'baremetal_status_code_retries': '5', 'identity_api_version': '3', 'username': 'admin', 'deferred_help': False, 'cert': None, u'secgroup_source': u'neutron', 'debug': True, u'interface': 'internalURL', u'disable_vendor_agent': {}}
defaults: {u'auth_type': 'password', u'status': u'active', u'image_status_code_retries': 5, u'baremetal_introspection_status_code_retries': 5, 'api_timeout': None, 'cacert': None, u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, u'interface': None, u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', u'baremetal_status_code_retries': 5, 'verify': True, 'cert': None, u'secgroup_source': u'neutron', u'object_store_api_version': u'1', u'disable_vendor_agent': {}}
cloud cfg: {'auth_type': 'password', 'beta_command': False, u'image_status_code_retries': '5', 'orchestration_api_version': '1', 'cacert': None, 'auth_url': 'http://172.28.16.9:5000/v3', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], 'verify': True, u'object_store_api_version': u'1', u'status': u'active', 'verbose_level': 3, 'region_name': 'RegionOne', u'baremetal_introspection_status_code_retries': '5', 'api_timeout': None, 'auth': {'user_domain_name': 'Default', 'project_name': 'admin', 'project_domain_name': 'Default'}, 'default_domain': 'default', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, 'timing': False, 'password': '***', u'baremetal_status_code_retries': '5', 'identity_api_version': '3', 'username': 'admin', 'deferred_help': False, 'cert': None, u'secgroup_source': u'neutron', 'debug': True, u'interface': 'internalURL', u'disable_vendor_agent': {}}
compute API version 2.1, cmd group openstack.compute.v2
network API version 2, cmd group openstack.network.v2
image API version 2, cmd group openstack.image.v2
volume API version 2, cmd group openstack.volume.v2
identity API version 3, cmd group openstack.identity.v3
object_store API version 1, cmd group openstack.object_store.v1
orchestration API version 1, cmd group openstack.orchestration.v1
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, u'image_status_code_retries': '5', 'orchestration_api_version': '1', 'timing': False, 'auth_url': 'http://172.28.16.9:5000/v3', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], 'verify': True, u'object_store_api_version': u'1', u'status': u'active', 'verbose_level': 3, 'region_name': 'RegionOne', u'baremetal_introspection_status_code_retries': '5', 'api_timeout': None, 'auth': {'user_domain_name': 'Default', 'project_name': 'admin', 'project_domain_name': 'Default'}, 'default_domain': 'default', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, 'cacert': None, 'password': '***', u'baremetal_status_code_retries': '5', 'identity_api_version': '3', 'username': 'admin', 'deferred_help': False, 'cert': None, u'secgroup_source': u'neutron', 'debug': True, u'interface': 'internalURL', u'disable_vendor_agent': {}}
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, u'image_status_code_retries': '5', 'orchestration_api_version': '1', 'timing': False, 'auth_url': 'http://172.28.16.9:5000/v3', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], 'verify': True, u'object_store_api_version': u'1', u'status': u'active', 'verbose_level': 3, 'region_name': 'RegionOne', u'baremetal_introspection_status_code_retries': '5', 'api_timeout': None, 'auth': {'user_domain_name': 'Default', 'project_name': 'admin', 'project_domain_name': 'Default'}, 'default_domain': 'default', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, 'cacert': None, 'password': '***', u'baremetal_status_code_retries': '5', 'identity_api_version': '3', 'username': 'admin', 'deferred_help': False, 'cert': None, u'secgroup_source': u'neutron', 'debug': True, u'interface': 'internalURL', u'disable_vendor_agent': {}}
command: server list -> openstackclient.compute.v2.server.ListServer (auth=True)
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, u'image_status_code_retries': '5', 'key': None, 'timing': False, 'auth_url': 'http://172.28.16.9:5000/v3', 'additional_user_agent': [('osc-lib', '1.14.1')], u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], 'verify': True, u'object_store_api_version': u'1', u'status': u'active', 'verbose_level': 3, 'region_name': 'RegionOne', u'baremetal_introspection_status_code_retries': '5', 'api_timeout': None, 'auth': {'user_domain_name': 'Default', 'project_name': 'admin', 'project_domain_name': 'Default'}, 'default_domain': 'default', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'orchestration_api_version': '1', u'interface': 'internalURL', 'password': '***', 'cacert': None, u'baremetal_status_code_retries': '5', 'identity_api_version': '3', 'username': 'admin', 'deferred_help': False, 'cert': None, u'secgroup_source': u'neutron', 'debug': True, u'disable_vendor_agent': {}}
Using auth plugin: password
Using parameters {'username': 'admin', 'project_name': 'admin', 'user_domain_name': 'Default', 'auth_url': 'http://172.28.16.9:5000/v3', 'password': '***', 'project_domain_name': 'Default'}
Get auth_ref
REQ: curl -g -i -X GET http://172.28.16.9:5000/v3 -H "Accept: application/json" -H "User-Agent: openstacksdk/0.37.0 keystoneauth1/3.18.0 python-requests/2.22.0 CPython/2.7.5"
Starting new HTTP connection (1): 172.28.16.9:5000
http://172.28.16.9:5000 "GET /v3 HTTP/1.1" 200 251
RESP: [200] Connection: close Content-Length: 251 Content-Security-Policy: default-src 'self' https: wss:; Content-Type: application/json Date: Tue, 26 Nov 2019 03:44:52 GMT Server: nginx/1.16.1 Vary: X-Auth-Token X-Content-Type-Options: nosniff X-Frame-Options: DENY X-XSS-Protection: 1; mode=block x-openstack-request-id: req-490ab2ff-c0b9-4436-bf8d-0771f3ac5ffe
RESP BODY: {"version": {"status": "stable", "updated": "2019-01-22T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.12", "links": [{"href": "http://172.28.16.9:5000/v3/", "rel": "self"}]}}
GET call to http://172.28.16.9:5000/v3 used request id req-490ab2ff-c0b9-4436-bf8d-0771f3ac5ffe
Making authentication request to http://172.28.16.9:5000/v3/auth/tokens
Resetting dropped connection: 172.28.16.9
http://172.28.16.9:5000 "POST /v3/auth/tokens HTTP/1.1" 201 4640
{"token": {"is_domain": false, "methods": ["password"], "roles": [{"id": "9944533d28d64d1ca7c5f8c580896020", "name": "admin"}, {"id": "4633f54340d2453e8b186326eed8aef5", "name": "member"}, {"id": "05e2dc8cbfad49838cbfa683e7eb7325", "name": "reader"}], "expires_at": "2019-11-26T15:44:52.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "17e53f35988a4b4a9a32c8cfeec05537", "name": "admin"}, "catalog": [{"endpoints": [{"url": "http://172.28.16.9:8780", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "0ca74408bb074d24b22dd2aa00eff820"}, {"url": "https://10.30.16.9:8780", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "27924cb00b53432e8beb34b056e67ff1"}, {"url": "http://172.28.16.9:8780", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "79b09d9892bf4f3cbdcf2784a1684c2f"}], "type": "placement", "id": "1c74655d5e1e4191b959e96cabcfefbd", "name": "placement"}, {"endpoints": [{"url": "https://10.30.16.9:8774/v2.1", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "27ffcc6bb7d944c1a6c04e91c830efc3"}, {"url": "http://172.28.16.9:8774/v2.1", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "7b128ef8a8be4173b38121ed20d87e52"}, {"url": "http://172.28.16.9:8774/v2.1", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "c6f91cda858344f9b6cc515f1e3a99a8"}], "type": "compute", "id": "26d2b7fb2a1440298aa9547445c26496", "name": "nova"}, {"endpoints": [{"url": "https://10.30.16.9:8000/v1", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "4441551e12fc47f3bcf16a2fc35bd7e0"}, {"url": "http://172.28.16.9:8000/v1", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "6cb8f78140214c71953ad20befeb9c0a"}, {"url": "http://172.28.16.9:8000/v1", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "771f3bfada8a4a2c8f61f853377bfe73"}], "type": "cloudformation", "id": "3fc58bddeddb4cd3bda8445ee31c84cd", "name": "heat-cfn"}, {"endpoints": [{"url": "https://10.30.16.9:9696", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "0eefb65249f84092b41cd70c59f8598e"}, {"url": "http://172.28.16.9:9696", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "56fa92d9b7104f27b17382479860f2d5"}, {"url": "http://172.28.16.9:9696", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "bf99e2da368d4367ab76a16c682e9aa2"}], "type": "network", "id": "6c04b2fa2e444ebd8e4c13ce7e2c324a", "name": "neutron"}, {"endpoints": [{"url": "https://10.30.16.9:8004/v1/17e53f35988a4b4a9a32c8cfeec05537", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "7dd979b3ea6d4459a780aa09baff8d06"}, {"url": "http://172.28.16.9:8004/v1/17e53f35988a4b4a9a32c8cfeec05537", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "87c6d36c25774c958daaab11ef2a51a3"}, {"url": "http://172.28.16.9:8004/v1/17e53f35988a4b4a9a32c8cfeec05537", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "fc62f32a3ee4463eaa09d7bbb00e1b90"}], "type": "orchestration", "id": "952ae979ecb7472f83010be177ddb282", "name": "heat"}, {"endpoints": [{"url": "https://10.30.16.9:9292", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "5fd1c9cc608e4134b0ddd5a230401c6f"}, {"url": "http://172.28.16.9:9292", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "a95c4a55f1c84ac9aee4b85874fa3893"}, {"url": "http://172.28.16.9:9292", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "ff2819e67b8c4ff1b650d6c2af4b551c"}], "type": "image", "id": "988a3140f151414a9ecde2cd4211a4ab", "name": "glance"}, {"endpoints": [{"url": "http://172.28.16.9:5000", "interface": "admin", "region": "RegionOne", "region_id": "RegionOne", "id": "3ff947111a994736b327155d6671dde9"}, {"url": "http://172.28.16.9:5000", "interface": "internal", "region": "RegionOne", "region_id": "RegionOne", "id": "7b69d078595e4ce1bc94c1ec3b63ecf4"}, {"url": "https://10.30.16.9:5000", "interface": "public", "region": "RegionOne", "region_id": "RegionOne", "id": "f333086d636d4db29a490c90fa1a4737"}], "type": "identity", "id": "b2afa2ef07cb4d8fa9c1391221d7c8d8", "name": "keystone"}], "user": {"domain": {"id": "default", "name": "Default"}, "password_expires_at": null, "name": "admin", "id": "093c1e3cb4964d3c9b842c671689e2b1"}, "audit_ids": ["DbzIEG-oQgq-f8WX9GAI4g"], "issued_at": "2019-11-26T03:44:52.000000Z"}}
run(Namespace(all_projects=False, changes_before=None, changes_since=None, columns=[], deleted=False, fit_width=False, flavor=None, formatter='table', host=None, image=None, instance_name=None, ip=None, ip6=None, limit=None, long=False, marker=None, max_width=0, name=None, name_lookup_one_by_one=False, no_name_lookup=False, noindent=False, print_empty=False, project=None, project_domain=None, quote_mode='nonnumeric', reservation_id=None, sort_columns=[], status=None, user=None, user_domain=None))
Instantiating compute client for API Version Major: 2, Minor: 1
Instantiating compute api: <class 'openstackclient.api.compute_v2.APIv2'>
Instantiating identity client: <class 'keystoneclient.v3.client.Client'>
invalid syntax (more.py, line 340)
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cliff/app.py", line 401, in run_subcommand
result = cmd.run(parsed_args)
File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
return super(Command, self).run(parsed_args)
File "/usr/lib/python2.7/site-packages/cliff/display.py", line 116, in run
column_names, data = self.take_action(parsed_args)
File "/usr/lib/python2.7/site-packages/openstackclient/compute/v2/server.py", line 1168, in take_action
image_client = self.app.client_manager.image
File "/usr/lib/python2.7/site-packages/osc_lib/clientmanager.py", line 47, in __get__
self._handle = self.factory(instance)
File "/usr/lib/python2.7/site-packages/openstackclient/image/client.py", line 45, in make_client
API_VERSIONS)
File "/usr/lib/python2.7/site-packages/osc_lib/utils/__init__.py", line 428, in get_client_class
return importutils.import_class(client_path)
File "/usr/lib/python2.7/site-packages/oslo_utils/importutils.py", line 30, in import_class
__import__(mod_str)
File "/usr/lib/python2.7/site-packages/glanceclient/v2/__init__.py", line 15, in <module>
from glanceclient.v2.client import Client # noqa
File "/usr/lib/python2.7/site-packages/glanceclient/v2/client.py", line 19, in <module>
from glanceclient.v2 import image_members
File "/usr/lib/python2.7/site-packages/glanceclient/v2/image_members.py", line 16, in <module>
import warlock
File "/usr/lib/python2.7/site-packages/warlock/__init__.py", line 17, in <module>
from warlock.core import model_factory # NOQA
File "/usr/lib/python2.7/site-packages/warlock/core.py", line 19, in <module>
from . import model
File "/usr/lib/python2.7/site-packages/warlock/model.py", line 21, in <module>
import jsonschema
File "/usr/lib/python2.7/site-packages/jsonschema/__init__.py", line 31, in <module>
import importlib_metadata
File "/usr/lib/python2.7/site-packages/importlib_metadata/__init__.py", line 9, in <module>
import zipp
File "/usr/lib/python2.7/site-packages/zipp.py", line 12, in <module>
import more_itertools
File "/usr/lib/python2.7/site-packages/more_itertools/__init__.py", line 1, in <module>
from more_itertools.more import * # noqa
File "/usr/lib/python2.7/site-packages/more_itertools/more.py", line 340
def _collate(*iterables, key=lambda a: a, reverse=False):
^
SyntaxError: invalid syntax
clean_up ListServer: invalid syntax (more.py, line 340)
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 136, in run
ret_val = super(OpenStackShell, self).run(argv)
File "/usr/lib/python2.7/site-packages/cliff/app.py", line 281, in run
result = self.run_subcommand(remainder)
File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 176, in run_subcommand
ret_value = super(OpenStackShell, self).run_subcommand(argv)
File "/usr/lib/python2.7/site-packages/cliff/app.py", line 401, in run_subcommand
result = cmd.run(parsed_args)
File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
return super(Command, self).run(parsed_args)
File "/usr/lib/python2.7/site-packages/cliff/display.py", line 116, in run
column_names, data = self.take_action(parsed_args)
File "/usr/lib/python2.7/site-packages/openstackclient/compute/v2/server.py", line 1168, in take_action
image_client = self.app.client_manager.image
File "/usr/lib/python2.7/site-packages/osc_lib/clientmanager.py", line 47, in __get__
self._handle = self.factory(instance)
File "/usr/lib/python2.7/site-packages/openstackclient/image/client.py", line 45, in make_client
API_VERSIONS)
File "/usr/lib/python2.7/site-packages/osc_lib/utils/__init__.py", line 428, in get_client_class
return importutils.import_class(client_path)
File "/usr/lib/python2.7/site-packages/oslo_utils/importutils.py", line 30, in import_class
__import__(mod_str)
File "/usr/lib/python2.7/site-packages/glanceclient/v2/__init__.py", line 15, in <module>
from glanceclient.v2.client import Client # noqa
File "/usr/lib/python2.7/site-packages/glanceclient/v2/client.py", line 19, in <module>
from glanceclient.v2 import image_members
File "/usr/lib/python2.7/site-packages/glanceclient/v2/image_members.py", line 16, in <module>
import warlock
File "/usr/lib/python2.7/site-packages/warlock/__init__.py", line 17, in <module>
from warlock.core import model_factory # NOQA
File "/usr/lib/python2.7/site-packages/warlock/core.py", line 19, in <module>
from . import model
File "/usr/lib/python2.7/site-packages/warlock/model.py", line 21, in <module>
import jsonschema
File "/usr/lib/python2.7/site-packages/jsonschema/__init__.py", line 31, in <module>
import importlib_metadata
File "/usr/lib/python2.7/site-packages/importlib_metadata/__init__.py", line 9, in <module>
import zipp
File "/usr/lib/python2.7/site-packages/zipp.py", line 12, in <module>
import more_itertools
File "/usr/lib/python2.7/site-packages/more_itertools/__init__.py", line 1, in <module>
from more_itertools.more import * # noqa
File "/usr/lib/python2.7/site-packages/more_itertools/more.py", line 340
def _collate(*iterables, key=lambda a: a, reverse=False):
^
SyntaxError: invalid syntax
END return value: 1
编辑
我想念您是pip installing
的事实,而不是依赖您的软件包管理器。首先,不要这样做:在系统中运行pip install
Python库有时会破坏事情。如果要使用pip
,则将其安装到不会与系统工具冲突的虚拟环境中。如果将内容安装到虚拟环境中,则只需删除并重新创建虚拟环境即可。我担心即使我们能够解决
more-itertools
问题,您也会发现其他问题。鉴于
more_itertools
似乎已被某些代码使用,我怀疑简单地删除它会破坏一切。您也许可以显式安装它的早期python 2.x兼容版本。尝试运行:pip install more-itertools==5.0.0