VTKに関する環境構築について、大変時間を使ったので、記録
結果として、pythonのpipで一発OKだった。
pip install vtk
自分の環境
OS : Windows 11
CPU : AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx 2.10 GHz
Python : 3.9.21
conda version : 24.11.2
VTKバージョン: 9.3.1
VTKの使い道
植物細胞の膨圧や境界張力を含んだシミュレーションの可視化に用いる.
試した事
以下のいずれにせよ,コンパイル&ビルドには時間がかかる.
使用コア7つの並列ビルドで1時間を軽く超えるので,非常に面倒.
成功した方法
pipでインストール
失敗した方法
MINGW64でCmake
毎回、lib-tiff関係で必ずエラーが生じた。
依存関係の解消やlib-tiffに関連する機能を落としてコンパイルするなど、色々試してビルドの終了まで持っていくが、VTKにおける必須のファイルたちがなぜか生成されていなかった
CMakeLists.txtの修正をしたが,時間だけが無くなる
VTKのバージョンについても複数試した.
詳細
- MINGW64でのVTK構築
コマンド:
mingw32-make -j6
結果: multiple definition of `vtktiff__TIFFerrorHandlerExt' エラー発生
原因: TIFFモジュールの競合 - CMakeによる依存関係の整理
コマンド:
pacman -S mingw-w64-x86_64-libtiff mingw-w64-x86_64-cmake
結果: TIFFモジュールのエラーが継続 - TIFFモジュール無効化の試行
コマンド:
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DModule_vtktiff=OFF "C:/Users/user/Downloads/VTK-master"
結果: TIFFモジュールの無効化でエラーは解消されず - 再度のビルド(スレッド数を減らす)
コマンド:
mingw32-make -j4
結果: 同様のエラーが発生 - 内部TIFFモジュールの削除と再試行
コマンド:
rm -rf C:/Users/user/Downloads/VTK-master/ThirdParty/tiff/vtktiff
結果: 内部TIFFモジュールが競合しているため、ビルドが失敗 - 外部ライブラリの強制使用
コマンド:
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DVTK_USE_SYSTEM_TIFF=ON -DTIFF_INCLUDE_DIR=C:/msys64/mingw64/include -DTIFF_LIBRARY=C:/msys64/mingw64/lib/libtiff.dll.a "C:/Users/user/Downloads/VTK-master"
結果: TIFFモジュールに関するエラーが解消されず - ビルド環境の整備(必要なパッケージのインストール)
コマンド:
pacman -S mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc
結果: エラーが解消せず、ビルドは未完了 - Ninjaによる再試行
コマンド:
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DTIFF_INCLUDE_DIR=/mingw64/include -DTIFF_LIBRARY=/mingw64/lib/libtiff.dll.a -DVTK_USE_SYSTEM_TIFF=ON ../vtk
結果: TIFFエラーが解消されず、ビルドに失敗 - NetCDF無効化の試行
コマンド:
cmake -G Ninja -DVTK_MODULE_ENABLE_VTK_netcdf=NO
結果: NetCDFエラーが解消されず
VisualStudioでVTKを構築
残念な事に,VisualStudioの使い方がよく分からなかった.
VisualStudioでも可能ではあったのかもしれないが検証までは出来ていない.
conda-forgeでインストール
numpy関係のエラーが生じた
上手くいった方法
pythonのvtkライブラリを利用する.
anaconda経由でインストールすると,numpy関係でエラーが生じる.
したがって,pipでインストールした.
vtkのバージョンは9.3.1
実行したコマンドの履歴
conda環境及びVTKのインストール
conda create -n vtk_env python=3.9
conda activate vtk_env
conda install -c conda-forge cmake
conda install -c conda-forge vtk
(error)conda install -c conda-forge mingw-w64
(error)conda install -c conda-forge mingw-w64-toolchain
conda install -c conda-forge m2w64-toolchain
VTKが上手く入っていないので,一旦,baseとvtk_envのvtkをremoveしてから,vtk_envだけに入れる
conda remove vtk
conda config --add channels conda-forge
conda config --set channel_priority strict
これを見ると,インストールは成功していそう
(vtk_env) C:\Users\user>python -c "import vtk; print(vtk.vtkVersion().GetVTKVersion())"
9.3.1
下に胚ってそう
"C:\Users\user\anaconda3\envs\vtk_env\Lib\site-packages\vtkmodules"
conda activate vtk_env
(vtk_env)を確認
VTKはpipでインストール
condaとpipのインストール状況を確認
conda list vtk
pip show vtk
conda remove vtk
pip uninstall vtk
conda install pip
pip install vtk==9.3.1
numpyでエラー
anaconda3フォルダに飛んで,手動でnumpy関係フォルダを削除(2フォルダ)
再度,pipでnumpyとvtkをインストール
参考として,conda と pip を分けて依存関係を記述
conda list > conda_packages.txt
pip list --format=columns > pip_packages.txt
conda
# Name Version Build Channel
bzip2 1.0.8 h2466b09_7 conda-forge
ca-certificates 2024.12.14 h56e8100_0 conda-forge
cmake 3.31.4 hff78f93_0 conda-forge
contourpy 1.3.0 pypi_0 pypi
cycler 0.12.1 pypi_0 pypi
fonttools 4.55.3 pypi_0 pypi
importlib-resources 6.5.2 pypi_0 pypi
kiwisolver 1.4.7 pypi_0 pypi
krb5 1.21.3 hdf4eb48_0 conda-forge
libcurl 8.11.1 h88aaa65_0 conda-forge
libexpat 2.6.4 he0c23c2_0 conda-forge
libffi 3.4.2 h8ffe710_5 conda-forge
liblzma 5.6.3 h2466b09_1 conda-forge
libsqlite 3.47.2 h67fdade_0 conda-forge
libssh2 1.11.1 he619c9f_0 conda-forge
libuv 1.49.2 h2466b09_0 conda-forge
libzlib 1.3.1 h2466b09_2 conda-forge
m2w64-binutils 2.25.1 5 conda-forge
m2w64-bzip2 1.0.6 6 conda-forge
m2w64-crt-git 5.0.0.4636.2595836 2 conda-forge
m2w64-gcc 5.3.0 6 conda-forge
m2w64-gcc-ada 5.3.0 6 conda-forge
m2w64-gcc-fortran 5.3.0 6 conda-forge
m2w64-gcc-libgfortran 5.3.0 6 conda-forge
m2w64-gcc-libs 5.3.0 7 conda-forge
m2w64-gcc-libs-core 5.3.0 7 conda-forge
m2w64-gcc-objc 5.3.0 6 conda-forge
m2w64-gmp 6.1.0 2 conda-forge
m2w64-headers-git 5.0.0.4636.c0ad18a 2 conda-forge
m2w64-isl 0.16.1 2 conda-forge
m2w64-libiconv 1.14 6 conda-forge
m2w64-libmangle-git 5.0.0.4509.2e5a9a2 2 conda-forge
m2w64-libwinpthread-git 5.0.0.4634.697f757 2 conda-forge
m2w64-make 4.1.2351.a80a8b8 2 conda-forge
m2w64-mpc 1.0.3 3 conda-forge
m2w64-mpfr 3.1.4 4 conda-forge
m2w64-pkg-config 0.29.1 2 conda-forge
m2w64-toolchain 5.3.0 7 conda-forge
m2w64-tools-git 5.0.0.4592.90b8472 2 conda-forge
m2w64-windows-default-manifest 6.4 3 conda-forge
m2w64-winpthreads-git 5.0.0.4634.697f757 2 conda-forge
m2w64-zlib 1.2.8 10 conda-forge
matplotlib 3.9.4 pypi_0 pypi
msys2-conda-epoch 20160418 1 conda-forge
numpy 2.0.2 pypi_0 pypi
openssl 3.4.0 ha4e3fda_1 conda-forge
packaging 24.2 pypi_0 pypi
pillow 11.1.0 pypi_0 pypi
pip 24.3.1 pyh8b19718_2 conda-forge
pyparsing 3.2.1 pypi_0 pypi
python 3.9.21 h37870fc_1_cpython conda-forge
python-dateutil 2.9.0.post0 pypi_0 pypi
setuptools 75.6.0 pyhff2d567_1 conda-forge
six 1.17.0 pypi_0 pypi
tk 8.6.13 h5226925_1 conda-forge
tzdata 2024b hc8b5060_0 conda-forge
ucrt 10.0.22621.0 h57928b3_1 conda-forge
vc 14.40 haa95532_2
vc14_runtime 14.42.34433 he29a5d6_23 conda-forge
vs2015_runtime 14.42.34433 hdffcdeb_23 conda-forge
vtk 9.3.1 pypi_0 pypi
wheel 0.45.1 pyhd8ed1ab_1 conda-forge
zipp 3.21.0 pypi_0 pypi
zstd 1.5.6 h0ea2cb4_0 conda-forge
pip
Package Version
------------------- -----------
contourpy 1.3.0
cycler 0.12.1
fonttools 4.55.3
importlib_resources 6.5.2
kiwisolver 1.4.7
matplotlib 3.9.4
numpy 2.0.2
packaging 24.2
pillow 11.1.0
pip 24.3.1
pyparsing 3.2.1
python-dateutil 2.9.0.post0
setuptools 75.6.0
six 1.17.0
vtk 9.3.1
wheel 0.45.1
zipp 3.21.0