python3導入mayavi出現錯誤 TypeError: __call__() got an unexpected keyword argument 'qualname'
mayavi==4.7.1 traitsui==6.1.3 traits==5.1.2
>>> import mayavi.mlab as mlab
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/mayavi/mlab.py", line 16, in <module>
from mayavi.tools.camera import view, roll, yaw, pitch, move
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/mayavi/tools/camera.py", line 24, in <module>
from .engine_manager import get_engine
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/mayavi/tools/engine_manager.py", line 12, in <module>
from mayavi.preferences.api import preference_manager
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/mayavi/preferences/api.py", line 4, in <module>
from .preference_manager import preference_manager
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/mayavi/preferences/preference_manager.py", line 29, in <module>
from traitsui.api import View, Group, Item
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/api.py", line 36, in <module>
from .editors.api import ArrayEditor
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/editors/__init__.py", line 23, in <module>
from .api import ArrayEditor
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/editors/api.py", line 24, in <module>
from .code_editor import CodeEditor
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/editors/code_editor.py", line 37, in <module>
class ToolkitEditorFactory(EditorFactory):
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/editors/code_editor.py", line 49, in ToolkitEditorFactory
mark_color = Color(0xECE9D8)
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traits/traits.py", line 655, in __call__
return self.maker_function(*args, **metadata)
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traits/traits.py", line 1414, in Color
return ColorTrait(*args, **metadata)
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/toolkit_traits.py", line 8, in ColorTrait
return toolkit().color_trait(*args, **traits)
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/toolkit.py", line 109, in toolkit
_toolkit = find_toolkit('traitsui.toolkits')
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/pyface/base_toolkit.py", line 272, in find_toolkit
toolkit = plugin.load()
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2434, in load
return self.resolve()
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2440, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/traitsui/qt4/__init__.py", line 19, in <module>
import pyface.qt
File "/home/sdhm/.virtualenvs/pt1.0/lib/python3.5/site-packages/pyface/qt/__init__.py", line 80, in <module>
importlib.import_module('.QtCore', module)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
TypeError: __call__() got an unexpected keyword argument 'qualname'
解決辦法,使用try except 導入mayavi:
這裏導入了兩次mayavi,不知爲何第一次導入會遇到上述問題,再次導入則不會出現!
try:
import mayavi.mlab as mlab
except:
try:
import mayavi.mlab as mlab
except ImportError:
logging.error('Failed to import mayavi')