编译VTK首先要安装QT
使用cmake-gui编译
Build_SHARED_LIBS:编译生成链接动态库
选择VTK_GROUP_QT后再编译会出现QT_QMAKE_EXECUTABLE:选择QT安装目录下bin中的qmake
VTK_QT_VERSION=5
如果要用python,则下面的VTK_PYTHON_VERSION和VTK_WRAP_PYTHON都要设置。
再次Configure会出现很多关于QT的选项
由于我安装了anaconda,不知道为什么VTK自动找的都是ananconda下的QT包,把它们一一改过来。(发现再次编译的时候自动识别了,不错)
编译完成后,如果vtk会把python的包默认的导入系统带的python,如果想要在其他环境里使用。只需要将site-package里的vtk复制过去就可以了,但是在import vtk的时候出了问题
ImportError: No module named vtkCommonCorePython
这个原因是没有将vtk加入python的环境变量,加上去就行了,具体操作是打开~/.bashrc
在最后一行加入
export PYTHONPATH=$PYTHONPATH:/home/xuyang/anaconda3/envs/eeg_mne/lib/python2.7/site-packages/vtk/
这是我想用VTK的python的地址。OK
再次import vtk
又有一个错误是
ImportError: libvtkCommonCorePython27D-7.1.so.1: cannot open shared object file: No such file or directory
这次带上了lib××,带上这个字样就是说lib库没有加过来,然后就找一下vtk的lib在哪里吧,发现是在
/usr/local/lib里的,发现里面好多其他的库,opencv的也在。。不管了,一股脑全加过来吧,
具体操作是
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
然后再次import vtk
又说
/home/xuyang/anaconda3/envs/eeg_mne/bin/../lib/libQt5Core.so.5: version `Qt_5.7' not found (required by /usr/local/lib/libvtkRenderingQt-7.1.so.1
真的是烦。在/usr/local/bin中打开vtkpython是完全可以用的,这里就不行,一定是哪里出错了。按照问题看,可能是QT没连上。
找了好久,原来是安装的PyQt5在搞怪,PYQT5生成了一些libQT的库文件,导致程序找不到真正的QT库文件。在~/.bashrc中把真正的QT库文件加入环境变量
export QTDIR=/home/xuyang/Qt5.7.1/5.7/gcc_64/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib
export PATH=${QTDIR}/bin:${PATH}
然后就完全了可以了。(早知道不安装PYQT5了)