パーシステントホモロジーを計算してくれるPythonモジュールであるhomcloudをインストールしようとしたところビルドエラーが発生したので、備忘録としてメモを残します。
エラーメッセージ(後半部分のみ抜粋)
In file included from ext/alpha_shape3.cc:2:
ext/homcloud_cgal.h:4:10: fatal error: CGAL/version_macros.h: No such file or directory
4 | #include <CGAL/version_macros.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for homcloud
Failed to build homcloud
ERROR: Could not build wheels for homcloud, which is required to install pyproject.toml-based projects解決策
エラーメッセージそのままですが、CGALがないと怒られているのでCGALを用意します。
管理者権限がある場合
パッケージマネージャーを使うのが簡単です。
sudo apt-get install libcgal-devmacの場合はbrew install cgalでインストールできます。
管理者権限がない場合(ソースからインストール)
GitHubリポジトリから使いたいバージョンのzipファイルもしくはtar.xzファイルをダウンロードします。
例えばバージョン5.5.2を使用したい場合、CGAL-5.5.2.zip もしくは CGAL-5.5.2-tar.xz をダウンロードします。
wget https://github.com/CGAL/cgal/releases/download/v5.5.2/CGAL-5.5.2.zipソースコードをダウンロードできたら解凍してパスを通します。
unzip CGAL-5.5.2.zip管理者権限がある場合、以下のコマンドを実行することで/usr/local/include等の標準的な場所にインストールすることができます。
cmake .
make install/usr/local/include等への書き込み権限がない場合、-DCMAKE_INSTALL_PREFIX=<path to installation directory>オプションをつけて実行しましょう。例えば、~/usrにインストールしたい場合は以下のコマンドを実行すれば良いです。
cmake -DCMAKE_INSTALL_PREFIX=~/usr .
make installこの場合、CGALは~/usr/includeにインストールされています。C_INCLUDE_PATH, CPLUS_INCLUDE_PATH に${HOME}/usr/includeを追加しましょう。
オプション
以下のようなオプションを指定することができます。
CMAKE_INSTALL_PREFIX=<dir>installation directory [/usr/local]CMAKE_BUILD_TYPE=<Debug|Release>build type [Release]CMAKE_C_COMPILER=<program>C compiler [gcc]CMAKE_CXX_COMPILER=<program>C++ compiler [g++]
CGAL_CXX_FLAGSadditional compiler flagsCGAL_MODULE_LINKER_FLAGSadd. linker flags (static libraries)CGAL_SHARED_LINKER_FLAGSadd. linker flags (shared libraries)CGAL_EXE_LINKER_FLAGSadd. linker flags (executables)
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント