【问题标题】:LookupError : Entry point 'XXX' not found in egg 'YYY', But XXX exists at egg 'YYY'LookupError:在蛋'YYY'中找不到入口点'XXX',但在蛋'YYY'中存在XXX
【发布时间】:2014-03-30 12:45:25
【问题描述】:

我目前正在快速查看,但我被困在运行代理上。以下是我在运行“swift-init proxy restart”时遇到的错误。

Traceback (most recent call last):
  File "/usr/local/bin/swift-proxy-server", line 23, in <module>
    sys.exit(run_wsgi(conf_file, 'proxy-server', default_port=8080, **options))
  File "/usr/local/lib/python2.7/dist-packages/swift/common/wsgi.py", line 386, in run_wsgi
    loadapp(conf_path, global_conf=global_conf)
  File "/usr/local/lib/python2.7/dist-packages/swift/common/wsgi.py", line 313, in loadapp
    ctx = loadcontext(loadwsgi.APP, conf_file, global_conf=global_conf)
  File "/usr/local/lib/python2.7/dist-packages/swift/common/wsgi.py", line 305, in loadcontext
    global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 296, in loadcontext
    global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 320, in _loadconfig
    return loader.get_context(object_type, name, global_conf)
  File "/usr/local/lib/python2.7/dist-packages/swift/common/wsgi.py", line 59, in get_context
    object_type, name=name, global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 450, in get_context
    global_additions=global_additions)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 559, in _pipeline_app_context
    APP, pipeline[-1], global_conf)
  File "/usr/local/lib/python2.7/dist-packages/swift/common/wsgi.py", line 59, in get_context
    object_type, name=name, global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 454, in get_context
    section)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 476, in _context_from_use
    object_type, name=use, global_conf=global_conf)
  File "/usr/local/lib/python2.7/dist-packages/swift/common/wsgi.py", line 59, in get_context
    object_type, name=name, global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 406, in get_context
    global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 296, in loadcontext
    global_conf=global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 328, in _loadegg
    return loader.get_context(object_type, name, global_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 620, in get_context
    object_type, name=name)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 659, in find_egg_entry_point
    for prot in protocol_options] or '(no entry points)'))))
LookupError: Entry point 'tempurl' not found in egg 'swift' (dir: /usr/local/lib/python2.7/dist-packages; protocols: paste.app_factory, paste.composite_factory, paste.composit_factory; entry_points: )

所以我查看了 dist-packages 中存在的 egg-info 和源文件。

/usr/local/lib/python2.7/dist-packages/swift-1.12.0.113.g076634e.egg-info/entry_points.txt

[paste.filter_factory]
formpost = swift.common.middleware.formpost:filter_factory
gatekeeper = swift.common.middleware.gatekeeper:filter_factory
container_quotas = swift.common.middleware.container_quotas:filter_factory
container_sync = swift.common.middleware.container_sync:filter_factory
catch_errors = swift.common.middleware.catch_errors:filter_factory
ratelimit = swift.common.middleware.ratelimit:filter_factory
keystoneauth = swift.common.middleware.keystoneauth:filter_factory
tempauth = swift.common.middleware.tempauth:filter_factory
list_endpoints = swift.common.middleware.list_endpoints:filter_factory
dlo = swift.common.middleware.dlo:filter_factory
name_check = swift.common.middleware.name_check:filter_factory
domain_remap = swift.common.middleware.domain_remap:filter_factory
proxy_logging = swift.common.middleware.proxy_logging:filter_factory
crossdomain = swift.common.middleware.crossdomain:filter_factory
healthcheck = swift.common.middleware.healthcheck:filter_factory
tempurl = swift.common.middleware.tempurl:filter_factory
bulk = swift.common.middleware.bulk:filter_factory
memcache = swift.common.middleware.memcache:filter_factory
account_quotas = swift.common.middleware.account_quotas:filter_factory
staticweb = swift.common.middleware.staticweb:filter_factory
cname_lookup = swift.common.middleware.cname_lookup:filter_factory
recon = swift.common.middleware.recon:filter_factory
slo = swift.common.middleware.slo:filter_factory

正如你在上面看到的,'tempurl = swift.common.middleware.tempurl:filter_factory'行实际上存在(我不熟悉鸡蛋结构,所以我不确定这些行是否足以运行。)确认这些行后,我发现 tempurl.py 实际上存在于 /usr/local/lib/python2.7/dist-packages/swift/common/middleware/tempurl.py 中。看起来一切都足以加载 tempurl.py。我应该去哪里解决这个问题。 提前感谢您的帮助。

ps。 我阅读的每个文档都使用 '[filter:tempurl]' 作为 proxy-server.conf。但是我在下面遇到了错误,所以我将其更改为“[app:tempurl]”。我面临第二个问题。第一个问题也来自“loadwsgi”。所以我假设第一个问题也与这个加载鸡蛋问题有关。

....
    object_type, name=name)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 587, in find_config_section
    self.filename))
LookupError: No section 'tempurl' (prefixed by 'app' or 'application' or 'composite' or 'composit' or 'pipeline' or 'filter-app') found in config /etc/swift/proxy-server.conf

【问题讨论】:

    标签: python egg openstack-swift


    【解决方案1】:

    我删除了以下几行:

    #[filter:authtoken]
    #use = egg:swift#proxy
    #allow_account_management = true
    #account_autocreate = true
    

    这是修复之前的错误输出。为了科学!!!

    [root@controller005 swift]# systemctl status openstack-swift-proxy.service -l
        ● openstack-swift-proxy.service - OpenStack Object Storage (swift) - Proxy Server
           Loaded: loaded (/usr/lib/systemd/system/openstack-swift-proxy.service; enabled; vendor preset: disabled)
           Active: failed (Result: exit-code) since Fri 2016-02-26 19:27:07 WET; 3min 10s ago
          Process: 20405 ExecStart=/usr/bin/swift-proxy-server /etc/swift/proxy-server.conf (code=exited, status=1/FAILURE)
         Main PID: 20405 (code=exited, status=1/FAILURE)
    
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 328, in _loadegg
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: return loader.get_context(object_type, name, global_conf)
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 620, in get_context
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: object_type, name=name)
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 659, in find_egg_entry_point
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: for prot in protocol_options] or '(no entry points)'))))
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net swift-proxy-server[20405]: LookupError: Entry point 'proxy' not found in egg 'swift' (dir: /usr/lib/python2.7/site-packages; protocols: paste.filter_factory, paste.filter_app_factory; entry_points: )
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net systemd[1]: openstack-swift-proxy.service: main process exited, code=exited, status=1/FAILURE
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net systemd[1]: Unit openstack-swift-proxy.service entered failed state.
    Feb 26 19:27:07 controller005.company.domain.xxx.domain.net systemd[1]: openstack-swift-proxy.service failed.
    [root@controller005 swift]# cat /usr/lib/python2.7/site-packages/swift-2.3.0-py2.7.egg-info/entry_points.txt
    [paste.app_factory]
    mem_object = swift.obj.mem_server:app_factory
    account = swift.account.server:app_factory
    object = swift.obj.server:app_factory
    container = swift.container.server:app_factory
    proxy = swift.proxy.server:app_factory
    
    [paste.filter_factory]
    formpost = swift.common.middleware.formpost:filter_factory
    gatekeeper = swift.common.middleware.gatekeeper:filter_factory
    container_quotas = swift.common.middleware.container_quotas:filter_factory
    container_sync = swift.common.middleware.container_sync:filter_factory
    catch_errors = swift.common.middleware.catch_errors:filter_factory
    ratelimit = swift.common.middleware.ratelimit:filter_factory
    xprofile = swift.common.middleware.xprofile:filter_factory
    keystoneauth = swift.common.middleware.keystoneauth:filter_factory
    tempauth = swift.common.middleware.tempauth:filter_factory
    list_endpoints = swift.common.middleware.list_endpoints:filter_factory
    dlo = swift.common.middleware.dlo:filter_factory
    name_check = swift.common.middleware.name_check:filter_factory
    domain_remap = swift.common.middleware.domain_remap:filter_factory
    proxy_logging = swift.common.middleware.proxy_logging:filter_factory
    crossdomain = swift.common.middleware.crossdomain:filter_factory
    healthcheck = swift.common.middleware.healthcheck:filter_factory
    tempurl = swift.common.middleware.tempurl:filter_factory
    bulk = swift.common.middleware.bulk:filter_factory
    memcache = swift.common.middleware.memcache:filter_factory
    account_quotas = swift.common.middleware.account_quotas:filter_factory
    staticweb = swift.common.middleware.staticweb:filter_factory
    cname_lookup = swift.common.middleware.cname_lookup:filter_factory
    recon = swift.common.middleware.recon:filter_factory
    slo = swift.common.middleware.slo:filter_factory
    
    [root@controller005 swift]#
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-23
      • 2019-03-08
      • 2011-08-09
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      相关资源
      最近更新 更多