"BOKU"のITな日常

BOKUが勉強したり、考えたことを頭の整理を兼ねてまとめてます。

Windows10のAnaconda環境で、pip実行時に「error: command 'cl.exe' failed: No such file or directory」

f:id:arakan_no_boku:20190316225326j:plain

目次

pip実行時に「error: command 'cl.exe' failed: No such file or directory」

Windows10Homeに、Anacondaをインストールして使ってます。

普通につかっていたのですが、ある日ライブラリ(python-Levenshtein)をpip installしようとしたら、いきなりエラーになりました。

エラーメッセージは「error: command 'cl.exe' failed: No such file or directory」です。

f:id:arakan_no_boku:20181212211848j:plain

 

コンパイラがはいってない

拡張モジュールの中には、インストール時にコンパイルするものがあります。

どうやらインストールしようとしたライブラリがそれだったようです。

www.python.jp

メッセージは「 'cl.exe' failed: No such file or directory ・・ようするに・・・cl.exeが見つからない・・」です。

僕の環境には、Cコンパイラは確かにはいっていません。

 

自分の環境は、Pythonの3.6。

だから、Visual Studio2017のCコンパイラのインストールが必要です。

ここからダウンロードします。

visualstudio.microsoft.com

 

Build Tools for visual studio 2017

ちょっと見つけにくいですけど。

f:id:arakan_no_boku:20181212212516j:plain

Build Tools for visual studio 2017 をダウンロードします。

vs_buildtools__1032378012.1544616641.exeみたいな名前のファイルがダウンロードされるので、実行して、インストーラに従って、Build Toolsをインストールします。

 

pipをToolsコマンドプロンプトで実行

インストールしても、普通にCMDウインドウを立ち上げて実行するだけでは、同じエラーで失敗します。

cl.exeへのパスは自動で通りません。

かと言って、手でcl.exeにパスを通そうと思っても、cl.exeの場所は、そう簡単には見つかりません。

というか、自分はいまだにどこにあるか知りません。

何故かというと。

Pythonの拡張ライブラリがインストールしたいだけなら、「VC2017用X64_x86Cross Toolsコマンドプロンプト」を使えば良いからです。

インストールする都度、EXEを探して手作業で環境変数に追加するとか・・。

アナログすぎて、それが良い手順とはとても思えず、こちらの方法をとってます。

「VC2017用X64_x86Cross Toolsコマンドプロンプト」は、プログラムメニューから実行します。

f:id:arakan_no_boku:20181212214503j:plain

そうすると、コマンドプロンプトが立ち上がってくるので、そこで「pip install」を実行すれば、問題なく終わります。

f:id:arakan_no_boku:20181212214703j:plain

やれやれです。

まあ、一度インストールしておけば、Cコンパイラが必要な拡張モジュールをPIPするときにも、同じようにすれば良いので、最初の1回だけなんですが、毎回環境構築しなおす都度、Cコンパイラ入れとくの忘れて、同じようにドタバタしてる気がします。 

学習してないです。

我ながら┐(´∀`)┌ヤレヤレ。