无法导入名称mlab

OD *_*IUM 0 python import mayavi

尝试导入mayavi时遇到了一个非常奇怪的错误.几分钟前,它就像一个魅力,但现在出现了问题,我不知道为什么.

python从终端开始,然后输入:

from mayavi import mlab
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/mayavi/mlab.py", line 27, in <module>
    from mayavi.tools.camera import view, roll, yaw, pitch, move
  File "/usr/lib/python2.7/dist-packages/mayavi/tools/camera.py", line 23, in <module>
    from engine_manager import get_engine
  File "/usr/lib/python2.7/dist-packages/mayavi/tools/engine_manager.py", line 14, in <module>
    from mayavi.core.engine import Engine
  File "/usr/lib/python2.7/dist-packages/mayavi/core/engine.py", line 28, in <module>
    from mayavi.core.scene import Scene
  File "/usr/lib/python2.7/dist-packages/mayavi/core/scene.py", line 15, in <module>
    from mayavi.core.source import Source
  File "/usr/lib/python2.7/dist-packages/mayavi/core/source.py", line 19, in <module>
    from mayavi.core.module_manager import ModuleManager
  File "/usr/lib/python2.7/dist-packages/mayavi/core/module_manager.py", line 19, in <module>
    from mayavi.core.lut_manager import LUTManager
  File "/usr/lib/python2.7/dist-packages/mayavi/core/lut_manager.py", line 10, in <module>
    import subprocess
  File "/usr/lib/python2.7/subprocess.py", line 432, in <module>
    import pickle
  File "pickle.py", line 4, in <module>
    from mayavi import mlab
ImportError: cannot import name mlab
Run Code Online (Sandbox Code Playgroud)

Python出了什么问题?

Mar*_*ers 5

你有一个名为的本地文件pickle.py; 这是导入而不是pickle模块.然后,该模块mlab在该模块本身完成导入循环导入依赖项之前尝试导入:

  File "/usr/lib/python2.7/subprocess.py", line 432, in <module>
    import pickle
  File "pickle.py", line 4, in <module>
    from mayavi import mlab
Run Code Online (Sandbox Code Playgroud)

请注意如何subprocess尝试导入pickle并找到您的文件(路径是相对的而不是内部的完整路径/usr/lib/python2.7/.

重命名pickle.py为其他内容,您在此处屏蔽标准库.