Macbook python3.7 安装 mayavi 中遇到的问题

Mayavi的安装真的是不友好啊,虽然三维图确实要比matplotlib要快,要漂亮,但是整个安装过程确花了我三天时间。为了让遇到同样问题的人少走弯路,我把我安装过程中遇到的问题记录下来。

—Author=Jimmy Cao

首先用pip3 安装mayavi(命令为pip3 install mayavi),这里有一个问题需要注意,由于mac上默认安装了python2.7,但我主要用python3.7版本,安装python3.7时会默认安装一个对应的包管理器,在命令行中对应着pip3。所以我们安装的mayavi包就得利用这个命令。
安装过程中会提示,没有mayavi需要的vtk版本,这里由于用的python3.7,没有一个打包好的vtk软件进行一键安装,需要自己下源码编译安装,下面为vtk源码安装过程

  1. 从vtk官网下载vtk源码,这里我下载的是最新版的vtk 8.1.1,并且从cmake官网下载cmake软件
  2. 利用cmake对vtk源码编译,cmake是有图形界面的,比较简单。编译过程中先要选中源代码文件夹,然后在选中需要build到的文件夹,最好新建一个,以防污染源代码
  3. 然后单击configure按钮,第一次单击这个按钮时会要选择一个configure到一个目标环境,由于mac里自带make编译环境,我选的Unix make,windows的话可以去网上搜搜利用visual studio安装的教程,第一次configure完会出错,界面是红色的,这时勾选上vtk_wrap_python,并且设置python版本vtk_python_version为3.7,再次configure,知道错误消失,这个时候可以单击generate按钮生成可以用unix make编译的源代码
  4. 在编译前,“注意”由于python3.7中的更新导致,源码的vtk8.1.1的vtk8.1.1/Wrapping/PythonCore目录下的vtkPythonArgs.cxx文件的105行的代码会出现bug。将源码a=PyUnicode_AsUTF8(o)改为a=const_cast(PyUnicode_AsUTF8(o))(这里具体的原因是python3.7里更新将PyUnicode_AsUTF8函数的返回值改为了const char *,加入const_cast将返回值改为char*修复bug之后就可以编译)。修复bug后,到对应的build到的目标目录里用命令行执行make编译,然后再执行make install进行安装,安装完别急着关闭,记录下对应的vtk python包的目录,后面要对这个python包进行操作。

参考了https://www.vtk.org/Wiki/VTK/Building

vtk 安装成功后仍然不能安装mayavi 因为这个vtk并没有添加到pip里面。虽然我将之前说到的那个python包拷贝到我的python3.7的包文件夹(我的是/Libaray/Frameworks/python.framework/versions/3.7/lib/python3.7/site-package)里后,能正常使用vtk并且可以进行vtk编程,但是pip3并不能直接识别我们自己拷贝过来的包。还是不能顺利安装mayavi。

我通过自己建立的vtk包,将vtk安装成功后的python vtk包找到,也就是之前就让大家注意的那个文件夹。拷贝到一个vtk文件夹里,然后在自己创建的文件夹里添加一个setup.py,写入

from setuptools import setup
setup(name='vtk',
      version='0.1',
      description='myvtk',
      author='Jimmy',
      author_email='[email protected]',
      license='JC',
      packages=['vtk','vtk/gtk','vtk/numpy_interface','vtk/qt','vtk/qt4','vtk/test','vtk/tk','vtk/util','vtk/wx'],
      zip_safe=False)

然后命令行到setup.py目录下 pip3 install .注意install后面的“.” 要不然成功不了。

安装完后还是不能正常安装由于我们自己的包里没有连接库,也就是.o文件,将.o文件全部拷贝到
/Libaray/Frameworks/python.framework/versions/3.7/lib/python3.7/site-package下的vtk文件夹里,到这里就能正常安装mayavi包了。

有什么问题的话欢迎大家评论留言。

你可能感兴趣的:(Macbook python3.7 安装 mayavi 中遇到的问题)