【问题标题】:AttributeError: 'module' object has no attribute 'raise_from' for six libraryAttributeError:“模块”对象没有六个库的属性“raise_from”
【发布时间】:2018-02-10 03:08:50
【问题描述】:

使用 taskflow(v2.7.0 和 v3.1.0) 启动流程时出现以下错误:

2018-02-10 02:13:15.485 13955 DEBUG taskflow.engines.helpers [-] Looking for 'default' engine driver in 'taskflow.engines' load /usr/lib/python2.7/site-packages/taskflow/engines/helpers.py:131
2018-02-10 02:13:15.611 13955 ERROR condor.diagnosis.api [-] Failed to examine api inspection flow.
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api Traceback (most recent call last):
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/local/autoop_services/condor/diagnosis/api.py", line 159, in create
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     create_what)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/local/autoop_services/condor/diagnosis/flows/api/examine_system.py", line 241, in get_flow
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     return taskflow.engines.load(api_flow, store=create_what)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/taskflow/engines/helpers.py", line 142, in load
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     engine.storage.inject(store)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/taskflow/utils/misc.py", line 405, in __get__
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     value = self._fget(instance)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 234, in storage
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     scope_fetcher=_scope_fetcher)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/taskflow/storage.py", line 331, in __init__
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     self.injector_name, expected_type=models.TaskDetail)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/taskflow/storage.py", line 471, in _atomdetail_by_name
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     "Unknown atom name '%s'" % atom_name)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/taskflow/exceptions.py", line 52, in raise_with_cause
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     excutils.raise_with_cause(exc_cls, message, *args, **kwargs)
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 143, in raise_with_cause
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api     six.raise_from(exc_cls(message, *args, **kwargs), kwargs.get('cause'))
2018-02-10 02:13:15.611 13955 TRACE condor.diagnosis.api AttributeError: 'module' object has no attribute 'raise_from'

然后我发现six.raise_from函数也存在于/usr/lib/python2.7/site-packages/six.py中,
并使用 Python 交互式 shell 执行了一些命令:

[root@yczc5 ~]# python
Python 2.7.5 (default, Nov  6 2016, 00:28:07) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from six import raise_from
>>> print raise_from.__name__
raise_from  

似乎six.raise_from 工作正常,但我找不到发生上述错误的原因。有人帮忙解决这个问题吗?

【问题讨论】:

    标签: python attributes six


    【解决方案1】:

    我发现它在我的情况下连接到 eventlet:

    # python
    Python 2.7.12 (default, Dec  4 2017, 14:50:18)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import six
    >>> six.__file__
    '/usr/lib/python2.7/dist-packages/six.pyc'
    >>>
    # python
    Python 2.7.12 (default, Dec  4 2017, 14:50:18)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import eventlet
    >>> import six
    >>> six.__file__
    '/usr/lib/python2.7/dist-packages/eventlet/support/six.pyc'
    >>>
    

    我认为他们做了一些不应该做的坏事。目前正在调查中。

    【讨论】:

      猜你喜欢
      • 2010-11-18
      • 2018-08-28
      相关资源
      最近更新 更多