Linux python3 安装Mayavi
相关参考文章: https://blog.csdn.net/ouening/article/details/76995188
2018/06/09更新
在基于ubuntu18.04(代号binoic)的Linux Mint 19 BETA上安python版本的vtk,可以执行以下命令:
$ sudo apt install python-vtk6
$ sudo apt install python3-vtk7
相关包可以下下面网址查找,我就是在那里找到需要下载什么包的
2018/06/07更新
系统:linux mint 18.3
按照下面的方法安装,首先下载了最新版VTK8.1.1,选择了python版本为3,,但是最后打包的还是python2,存在按照下面的方法把lib下的链接库复制到vtk里面去,再把整个vtk复制到路径/usr/lib/python3/dist-packages/
下面,进入python3终端import vtk
的时候出现下面错误:
ImportError: No module named 'vtkCommonCorePython'
因此8.1.1失败。
接着下载VTK7.1.1版本的进行编译,这次就可以了,根据之前的一次更新,我也提前先下载源代码手动安装了tcl/tk,注意要先安装tcl,再安装tk,这点在源代码的README文件里有写。
CMAKE-GUI的最后配置如下:
vtk7.1.1最终编译完成后,不想手动文件那么麻烦,在终端执行了
sudo make install
发现默认安装到了路径/usr/local/lib/python3.5/site-packages/
下面,如下图:
并且不知道什么原因识别不了这个路径,应该可以添加识别路径的,不过我直接复制到原来那个路径/usr/lib/python3/dist-packages/
下面了
2017/11/27 update
使用新系统重新按照下面的方法安装Vtk,安装后在python里面导入vtk的时候出现了如下错误:
ImportError: No module named vtkCommonPython
网上查了一下没有具体的解决办法,有人说编译的时候和tcl/tk环境有关,于是我就去tcl官网下载了tcl和tk的源码并且编译安装,然后在CMAKE选项中把tcl相关选项选上,重新操作一遍就可以了。
测试环境:Linux Mint KDE 18.2 64bit
讨论linux安装mayavi之前,先顺便提一下windows下安装mayavi的方法
在windows下安装Python包非常简单,到下面网站下载.whl格式的安装包
然后
pip install path_of_your_package
上述网站提供多个python版本的安装包,如下图,需要先安装VTK
linux下python2.7安装mayavi
以debian/ubuntu系为例,在终端执行下列命令
apt-get install python-dev
apt-get install python-vtk
pip install mayavi
python2.7的VTK环境可以用apt-get install安装,mayavi三维绘图包可以用pip安装,如果使用pip安装的时候遇到一些错误提示请自行搜索解决,我自己遇到的就是一些依赖库不齐全的问题
linux下python3安装mayavi
python3直接使用
pip3 install mayavi
安装mayavi是会提示没有vtk这个module的,而且无法通过apt安装python3环境的VTK,当然,VTK在PyPi里面也没有,也就是无法用pip安装,通过网上查阅,VTK7以上支持python3.X,需要自己编译,网上找了好多都没有相关介绍,只好自己尝试,而且成功了,下面记录一下过程.
(1) 首先安装一下python3的安装环境,在终端执行
apt-get install python3-dev
(2)参考下面的链接,编译VTK
连接的文章中提到需要安装QT5,实际并不需要,如果需要使用QT开发的也可一并下载安装,而且上文中有些包安装的时候是提示找不到的,将相应的包删除不安装即可,因为我自己实践的是要python3使用VTK,所以cmake的时候要选择VTK_WRAP_PYTHON,并将python版本设为3,下面记录详细的安装配置过程.
(3)去VTK官网下载最新的源代码VTK-8.0.0.tar.gz或者VTK-8.0.0.zip
可以用wget下载,下载完成后解压出来
(4)打开cmake GUI界面,选择源代码目录和需要构建二进制文件的目录,同时我将构建类型BUILD_TYPE设置为Release,将CMAKE的安装路径设为同需要构建的目录相同,这个可以修改的
配置如下:
注意上图是先configure之后再做如上修改的
(5)设置VTK_WRAP_PYTHON和python版本
配置如下
配置完之后选择generate生成
(6)终端进入到VTK_Build目录,执行下列命令进行编译
make
然后就是长达几个小时的编译…,反正我自己的编译了两三个小时
(7)编译完成后,我并没有执行make install
进行安装,因为我已经有编译好的文件了,等下就要复制到python3的dist_packages
目录下.
进入到VTK_Build文件目录,如下图,
注意lib和Wrapping这两个文件夹,lib里面有cmake这个文件夹和编译出来的动态链接库,Wrapping文件夹有Python,PythonCore和Tools
三个文件夹,进入Python
文件夹,里面有vtk这个文件夹,最终要的就是这个
(8) 将lib文件夹下的所以链接库(除了cmake文件夹)复制到vtk文件夹里面,如图
(9) 将vtk文件夹复制到
/usr/lib/python3/dist_packages
(10) 此时运行
pip3 install mayavi
便可成功安装
后记
我为什么知道这样做就可以?
我是从python2.7的版本推导出来的,既然python2.7能安装vtk,我就找到了python2.7下vtk的安装路径,如下图:
看到路径下有动态链接库和py文件,如法炮制,就将编译出来的动态链接库复制到生成的vtk文件夹下,然后将整个vtk文件夹复制到python3的dist_packages
路径下,linux mint18.2的python3版本是3.5,按照2.7的惯例应该在/usr/lib/python3.5
路径下,但是没有找到,是在/usr/lib/python3
路径下找到的,而且发现里面按照的模块就是之前刚安装的,也就是使用pip3 install your_module
安装的模块也在此路径下,那么就判断将vtk文件夹复制到
/usr/lib/python3/dist_packages
下是正确的,复制完vtk文件夹后可以打开python3导入vtk看看有没有错误,我自己通过此方法是没问题的,安装完vtk后再安装mayavi就没什么问题了
在linux终端执行
python3 -m qtconsole
打开ipython的qt界面,在mayavi官方文档上复制实例代码到ipython执行,可以正常执行
# Create the data.
from numpy import pi, sin, cos, mgrid
dphi, dtheta = pi/250.0, pi/250.0
[phi,theta] = mgrid[0:pi+dphi*1.5:dphi,0:2*pi+dtheta*1.5:dtheta]
m0 = 4; m1 = 3; m2 = 2; m3 = 3; m4 = 6; m5 = 2; m6 = 6; m7 = 4;
r = sin(m0*phi)**m1 + cos(m2*phi)**m3 + sin(m4*theta)**m5 + cos(m6*theta)**m7
x = r*sin(phi)*cos(theta)
y = r*cos(phi)
z = r*sin(phi)*sin(theta)
# View it.
from mayavi import mlab
s = mlab.mesh(x, y, z)
mlab.show()
2017/7/25更新
(1) CMAKE_PREFIX可以不用修改,默认为/usr/local
(2)按照之前的方法make之后,执行
make install
即可安装,默认安装在如下图路径
(3) 执行make
的时候添加参数j,例如下
make -j8
表示开8个线程进行编译,明显加快速度
2018/01/04更新
在Linux mint18.3 xfce重新编译安装VTK8.0的时候,使用make & make install
安装还是提示无法导入vtk模块,用前面的方法将编译生成的lib里面的文件和vtk一并复制到
/usr/lib/python3/dist_packages
推荐阅读
-
linux系统ubuntu18.04安装mysql 5.7
-
Linux(Ubuntu)下Mysql5.6.28安装配置方法图文教程
-
Linux(Ubuntu)下mysql5.7.17安装配置方法图文教程
-
linux下apache、mysql、php安装配置详细笔记
-
Linux系统怎么为Firefox火狐浏览器安装Flash插?
-
在win10和linux上分别安装Python虚拟环境的方法步骤
-
Linux下编译安装MySQL-Python教程
-
Linux下Nginx安装的方法(pcre和openssl)
-
linux下Nginx 0.8.40的安装方法
-
详解Linux 下开发微信小程序安装开发工具