dlibのsetup.pyの中にsubprocess.check_output(['cmake', '--version'])を実行しているところがあり、cmakeへのパスが通ってないためcmakeというファイルが見付からないことが原因。
subprocess.check_outputの引数にcmakeのパスを設定すれば直せるが、setup.pyはいじれないので困った。。
だめだった解決策は以下。
- conda env createで読み込むyamlファイルにcmakeを追加
- cmakeコマンドをwindows向けインストーラを使ってinstallし、システム環境変数のPathにcmakeのパスを設定する
- ユーザ環境変数のPATHにcmakeのパスを設定
- set PATH=...でcmakeのパスを設定
最終的にcondaのbase環境でpip install cmakeを実行すると直った。
conda env create~のログを見ると、以下のコマンドを実行してpipパッケージをinstallしている。この時のconda環境はどうやらbase環境であるっぽい。なのでpipパッケージのインストールに必要なpipやcondaパッケージがあればbase環境にインストールすればよい。
['C:\Users\username\AppData\Local\Continuum\miniconda3\envs\my_env\python.exe', '-m', 'pip', 'install', '-U', '-r', 'C:\my_pj\condaenv.3df17y9s.requirements.txt']
pip install cmakeの後pip install dlibを実行するとエラーは出ない。なのでuser siteにcmakeをinstallしても解決するかも知れないが試していない
参考: www.kkaneko.jp