1. 程式人生 > >learn vtk by Python script on mac

learn vtk by Python script on mac

j基礎環境: VTK-8.1.1 macOS Mojave 10.14 Python 2.7.10

build vtk,CMake一下:

cmake ./ -G "Unix Makefiles" \
-DVTK_USE_QVTK:BOOL=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DVTK_USE_GUISUPPORT:BOOL=ON \
-DVTK_QT_VERSION=5 \
-DModule_vtkGUISupportQt:BOOL=ON \
-DModule_vtkGUISupportQtOpenGL:BOOL=ON \
-DModule_vtkGUISupportQtSQL:BOOL=ON \
-DModule_vtkGUISupportQtWebkit:BOOL=OFF \
-DModule_vtkRenderingQt:BOOL=ON \
-DModule_vtkViewsQt:BOOL=ON \
-DVTK_WRAP_TCL:BOOL=ON \
-DTK_INTERNAL_PATH:PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/tk-private \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DVTK_PYTHON_VERSION=2.7.10 \
-DPYTHON_EXECUTABLE=/usr/bin/python \
-DPYTHON_INCLUDE_DIR=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/python2.7

值得注意的是,和learn vtk by Tcl script on mac介紹的不同,我們不再使用TCL_INTERNAL_PATH=/Users/weiyang/Downloads/VTK-8.1.1/ThirdParty/TclTk/internals/tk8.6,因為在系統升級到macOS Mojave 10.14後,基礎環境已經發生了變化。 後面的4個定義全和Python相關,其中PYTHON_INCLUDE_DIR代表的路徑含有各種C/C++標頭檔案。 接著,我們make一下。 再sudo make install. 最終會看到類似於這樣的資訊:

...
-- Installing: /usr/local/lib/python2.7/site-packages/vtk/vtkImagingMorphologicalPython.so
...
-- Installing: /usr/local/lib/python2.7/site-packages/vtk/vtkViewsInfovisPython.so
-- Installing: /usr/local/bin/vtkpython

現在可以試著使用vtkpython來執行一份vtk python指令碼,有可能報錯:ImportError: No module named vtkCommonCorePython 這需要我們設定好PYTHONPPATH變數,用於查詢python庫檔案

export PYTHONPATH="/usr/local/lib/python2.7/site-packages":"/usr/local/lib/p ython2.7/site-packages/vtk"

再次執行,你可能還會遇到這樣的錯誤提示: python Library not loaded: @rpath/QtWidgets.framework/Versions/5/QtWidgets

這需要我們設定好DYLD_FRAMEWORK_PATH變數,用於查詢qt庫檔案

export DYLD_FRAMEWORK_PATH=$DYLD_FRAMEWORK_PATH:/Users/weiyang/Qt5.9.2/5.9.2 /clang_64/lib

我們可以將這些命令都寫入~/.bashrc中,需要的時候source ~/.bashrc一下。 之後就能使用vtkpython解釋執行vtk python指令碼了。