`如何使用 `vtk` 通过 `pip3` 安装和 运行 `mayavi`?

`How to install and run `mayavi` by `pip3` with `vtk`?

我的系统是 Ubuntu 16.04,我的 Python 版本是 3.5。我已经使用 Python 包装器将 vtk 7.1.0 安装到 /home/why/software/vtk/7.1.0/ 中。此外,我将以下行添加到 .bashrc

export PYTHONPATH=$PYTHONPATH:/home/why/software/vtk/7.1.0/lib/python3.5/site-packages

并且我可以在ipython3中导入vtk并正常使用

但是当我通过

安装 mayavi
sudo -H pip3 install mayavi

我收到以下错误:

  Running setup.py bdist_wheel for mayavi ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1_ze16zr/mayavi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmp55qp27ekpip-wheel- --python-tag cp35:
  running bdist_wheel
  running build
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-build-1_ze16zr/mayavi/setup.py", line 499, in <module>
      **config
    File "/usr/lib/python3/dist-packages/numpy/distutils/core.py", line 169, in setup
      return old_setup(**new_attr)
    File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/usr/lib/python3/dist-packages/wheel/bdist_wheel.py", line 179, in run
      self.run_command('build')
    File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-1_ze16zr/mayavi/setup.py", line 311, in run
      build_tvtk_classes_zip()
    File "/tmp/pip-build-1_ze16zr/mayavi/setup.py", line 297, in build_tvtk_classes_zip
      gen_tvtk_classes_zip()
    File "tvtk/setup.py", line 50, in gen_tvtk_classes_zip
      from tvtk.code_gen import TVTKGenerator
    File "/tmp/pip-build-1_ze16zr/mayavi/tvtk/code_gen.py", line 10, in <module>
      import vtk
  ImportError: No module named 'vtk'

如何解决这个问题?非常感谢您的帮助。

编辑:

根据 Mike Müller 的建议,我现在可以安装 mayavi。但是我 运行 一个简单的测试如下:

In [1]: import numpy as np
In [2]: from mayavi import mlab
In [3]: x, y, z, value = np.random.random((4, 40))
In [4]: mlab.points3d(x, y, z, value)
Out[4]: <mayavi.modules.glyph.Glyph at 0x7f3190ffca98>

我只是得到一个灰色的死人window,里面没有任何人影。那么如何解决这个问题呢?

第 1 部分 - 安装

如果您 want/need 以 root 身份安装,请先更改为 root,然后导出 PYTHONPATH:

sudo -s
export PYTHONPATH=$PYTHONPATH:/home/why/software/vtk/7.1.0/lib/python3.5/site-packages
pip3 install mayavi

Root 不承认您作为其他用户设置的环境变量。

第 2 部分 - Mayavi

您需要调用 mlab.show() 来显示您的可视化:

import numpy as np
from mayavi import mlab

x, y, z, value = np.random.random((4, 40))
mlab.points3d(x, y, z, value)
mlab.show()