パーシステントホモロジーを計算してくれる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-dev
macの場合は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_FLAGS
additional compiler flagsCGAL_MODULE_LINKER_FLAGS
add. linker flags (static libraries)CGAL_SHARED_LINKER_FLAGS
add. linker flags (shared libraries)CGAL_EXE_LINKER_FLAGS
add. linker flags (executables)
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント