はじめに
今回、新しくPCを購入したので、以前のPCでもインストールして使っていたVTK(Visualization Toolkit) のSDK(C++開発環境)を改めてインストールし、その際の手順を記事にまとめました。
VTKとは
Kitware社が提供する3Dグラフィックスの可視化や形状処理を行うためのOSSであり、C++ライブラリとして実装されているほか、Python,Javaなどの言語に対してコア機能のラッパーも提供している。そのため、ユーザーはPythonで簡単にその機能を呼び出すことができる。VTKを利用しているアプリケーションで代表的なものに、ParaViewや3DSlicerなどがある。C++用のバイナリ配布はしておらず、C++で利用する場合はソースコードからビルドする必要がある。
pip install vtk じゃだめなの?
→ 良いです。
VTKは PythonAPIを提供しているので
pip install vtk
によって自身のPython環境にVTKパッケージをインストールすることができ、以降はPythonコード内で
import vtk
と記述するとVTKの全てのクラスや機能にアクセスできるようになります。
追記 : 最新のPython3.13ではvtkは使えませんでした
最新バージョンであるPython 3.13.9 で
pip install vtk
を実行すると、vtk 9.5.2 がインストールされます(25/11/6時点)。
(インストールされたvtkのバージョンは、
pip show vtk
で確認できます)
しかし、このPython3.13環境でVTKを利用した(import vtk文を含む)Pythonテストコードを実行すると、処理が止まってしまいました。Ctrl+Cで強制終了すると以下のようなメッセージが出ました。
どうやらimport vtkがうまく行かないみたいです。
別途python 3.11.0 をインストールし、パスを通した※1後
pip install vtk
を実行して、Python3.11環境にvtk 9.5.2 をインストールします。こちらの環境だとimport vtk文を含むpythonテストコードが実行できます※2。
※1 ... Windowsではパス設定画面(「設定(Ctrl+I)」→「システム」→「バージョン情報」→「システムの詳細設定」→「環境変数」→「ユーザー環境変数」→Path を「編集」)で上部に設定してある環境変数が優先されるので、複数バージョンのPythonをダウンロードしている場合は使いたい方のPython及びpipのパスを上に設定しておきましょう
※2 ... ちなみこのPython3.11環境での実行について、powershell だと非常に時間がかかる場合があったのですが、cmd だとプログラムがすぐに正常に実行されました。 powershell でうまく行かないときはcmd でも試してみるといいかもしれません。
なんでわざわざSDK(C++ライブラリ)の方をインストールするの?
いくつかのメリットはあります。
- C++コードでVTKが使える
- (上記のように)最新のpythonバージョンだとうまくいかない可能性がある
- たまに C++コードでしか書かれていない vtk-examples がある
自分の場合は3番目の理由でSDKをインストールしました。大体のvtk-examples のコードは、「Python > 」 と「Cxx > 」 の両方のプルダウンにある (両方の言語で書かれている)のですが、
例えばこれとかは、c++ プルダウンの方にしかなく、これを使ってみたいときはVTKのSDKをインストールしておく必要があります。(← Pythonで全く同じ挙動に書き直せるし、その方が手っ取り早い)
SDKのインストールは結構大変?
以前のPC(OS:windows11, ビルド環境:VisualStudio2022)でVTKをインストールしようとした際は、結構苦労した記憶があります。
https://www.kkaneko.jp/tools/win/vtk.html
を参考にしたけど、cmake実行時の設定を色々変えて試してなんとかインストールできた気がします。webで検索しても、手こずっている人は多い印象です。
VTKインストール手順
前置きが長くなってしまいました。以下が本編です。執筆時(25/11/6)時点での最新版(VTK 9.5.2) をインストールします。
0. 環境
- windows11
- VisualStudio2022 (Version 19.44.35219)
※CMakeはVisualStudioに付属するもの(cmake version 3.31.6-msvc6) を使っており、
公式CMakeはインストールしていません。
1. VTKのソースコードをダウンロードする
公式サイト から最新の *.tar.gzファイルをダウンロードし、展開します。新しく C:ドライブ直下にVTK/srcというフォルダを作り、そこに展開した中身(ソースコードなど)を全部入れます。
C:/
└─ VTK/
└─ src/
├─ Accelerators
├─ Charts
.
.
├─ CMakeLists.txt
.
.
2. VisualStudioの開発者用コマンドプロンプトからcmakeを実行する
Windowsスタートメニューから x64 Native Tools Command Prompt for VS 2022 を起動します。
このコマンドプロンプトの内部では、VisualStudioに付属するCMakeのPATHが追加設定されており、個別にCMakeをインストールしていなくてもcmakeコマンドを使うことができます (cmdやpowershellではPATHが通っていないので使えない)。
cmake --version
でバージョンが表示されればcmakeコマンドが使えます。先ほどのCMakeLists.txtファイルがあるディレクトリに移動し、cmakeを実行(ビルド環境を構成)します。
cd C:\VTK\src
cmake -S . -B build ^
-G "Visual Studio 17 2022" -A x64 -T host=x64 ^
-DCMAKE_INSTALL_PREFIX="C:\VTK\Release" ^
-DBUILD_TESTING=OFF ^
-DVTK_BUILD_EXAMPLES=OFF ^
-DBUILD_SHARED_LIBS=ON
(下3行はオプションです。)下の画像のようになるはず。
処理が終了したら、src/ 直下に buildフォルダが作成され、ビルド用の中間ファイル一式が生成されています。
3. ビルドしてインストール
ビルドしてインストールするコマンドを実行します。
cmake --build build --config RELEASE
cmake --build build --config RELEASE --target INSTALL
自分の場合、並列化なしでビルドして2時間半かかりました(←並列化させろよ...)。
--parallelを付けるだけで並列化させられるみたいです。インストールの方は1分程度で終わるので、ビルドの方だけ並列化させた下のコマンドの方をおすすめします。
cmake --build build --config RELEASE --parallel
cmake --build build --config RELEASE --target INSTALL
ビルドが終了したときの画面が以下
インストールが終了したときの画面が以下
インストールまで終了すると、
C:/
└─ VTK/
├─ src
└─ Release
├─ bin
├─ lib
├─ include
└─ share
のようにReleaseフォルダが作成され、その中にライブラリ一式が配置されます。
4.パス設定
パスを設定します。
- Windowsのシステム環境変数のPathに、
C:\VTK\Release\binを追加する - Windowsのシステム環境変数に 変数名 :
VTK_DIR, 変数値 :C:\VTK\Releaseを追加する
※パス追加後はコマンドプロンプト(x64 Native Tools Command Prompt for VS 2022)を再起動すること。
5.動作確認
このサンプルコードを使ってみます。適当なフォルダにソースコード(TubesWithVaryingRadiusAndColors.cpp) と CMakeLists.txt をコピーし、x64 Native Tools Command Prompt for VS 2022で
mkdir build
cd build
cmake ..
cmake --build . --config Release
のようにコマンドを打ってビルドし
cd Release
.\TubesWithVaryingRadiusAndColors
コマンドで実行します。
以下の画面が表示されればOK.
別のやり方 : CMake-GUI を使う方法
今回は上記手順でできたので試しませんでしたが、公式ドキュメントでも紹介されているCMake-GUIを使う方法もあるようです。こちらの場合、VisualStudioに付属するCMakeはCMake-GUIを含まないようなので、別途CMakeをインストールする必要があります。
まとめ
並列化させ忘れたせいでビルドに時間こそかかったものの、すんなりとインストールすることができました。
前回てこずったのは何故だったんだろう . . . ? 以前の環境では公式CMakeもインストールしてPATH通してたからごっちゃになっちゃってたのかなあ . . . ?




