簡體   English   中英

AttributeError:“模塊”對象沒有六個庫的屬性“ raise_from”

[英]AttributeError: 'module' object has no attribute 'raise_from' for six library

使用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'

然后我發現/usr/lib/python2.7/site-packages/six.py中還存在six.raise_from函數,
並使用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可以正常工作,但是我找不到上述錯誤發生的原因。 有人幫忙解決此問題嗎?

我發現在我的情況下它已連接到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'
>>>

我認為他們做了一些不該做的邪惡的事情。 目前正在調查中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM