タイトルそのままなんですが、備忘録として。
結論から言うと「Amazon LinuxのgccにはOpenMPの実行環境が入っていないので手動再インストールが必要」ということ。
LightFMに関してはこの辺を確認してみてください
- 教師あり機械学習で映画を推薦するモデルを作成する【LightFM】
https://sja-analysis.org/python-lightfm/ - LightFMをMovielensに適用してみた
https://qiita.com/guglilac/items/757fc665510c9b68f385
さて、ひとまずLightFMのインストールは
pip install lightfm
でOKなのですが、これをAmazon Linux上で普通に実施すると
omp.h: そのようなファイルやディレクトリはありません
というエラーが出てきます。
で、ここの記事を参考にすると以下の通り
原因ですが、yumでインストールされるgcc7.2には、Qulacsが使っているOpenMPのヘッダーファイルomp.hが含まれていない様子。
で、どうするかというと
sudo yum erase gcc72 gcc72-c++ libgcc72
で一旦gcc7.2を削除します。その上で、あらためてgcc 7.4.0を手作業でインストールします。
お~そういうことですか。
というわけで、gccをソースからビルド/インストールしないといけないわけですが、そのまんまな記事が。大変参考になりました。
- gccをソースからビルド/インストールする
https://qiita.com/liveralmask/items/6ed4a98ebb3bf6b7f707
ほぼこちらに書いてあることそのまんまですが、バージョンに関しては2020/9/23現在は10.2.0が最新ということでそこだけ変えて。実行コマンドは以下の通り。
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
tar zxvf gcc-10.2.0.tar.gz
cd gcc-10.2.0
./contrib/download_prerequisites
mkdir build
cd build
../configure --enable-languages=c,c++ --prefix=/usr/local --disable-bootstrap --disable-multilib
make > /dev/null
sudo make install all
make実施時に結構時間かかりますので、気長に待ちましょう。
で、上記実施後再度
pip install lightfm
を実行するとすんなりインストール出来ます。