エラーの内容
JuliaでPyPlotを使おうと,using PyPlotってやるとカーネルが落ちる(Macで起動したJupyte lab上で)。
INTEL MKL ERROR: dlopen(/Users/travis/.julia/conda/3/lib/libmkl_intel_thread.dylib, 9): Library not loaded: @rpath/libiomp5.dylib
Referenced from: /Users/travis/.julia/conda/3/lib/libmkl_intel_thread.dylib
Reason: image not found.
Intel MKL FATAL ERROR: Cannot load libmkl_intel_thread.dylib.
エラーメッセージは上みたいな感じ。ネットから拾ってきたから,ホームの名前が若干が違うが,内容的には同じ。
現状の対応
これが正解かよくわからないが,とりあえず,以下の対応で直った気がする。
Juliaが使っているcondaでmklのバージョンを2019.4にする。
$ $HOME/.julia/conda/3/bin/conda install mkl==2019.4
mklのバージョンが2021になっていると,エラーが出ていた様子。少し古いバージョンに戻すとエラーがとりあえず,出なくなった。
とりあえずやったこと
Juliaの再インストール
homebrewから再度インストールが効果なし。
.juliaディレクトリを消して,PyPlotを入れ直す
ホームのなかにある.juliaディレクトリを削除してから,PyPlotのライブラリをadd。
PyPlotを最初にusing PyPlotするときにはエラーがでないが,REPLを一旦終わって,再度using PyPlotしようとするとエラーした。よくわからない。
Pyenvの環境を消して,再インストール。Python環境を作り直した。
Pythonの環境はシステム上で設定(Pyenvで設定)したPythonが使われていると思っていたので,入れ直してみた。Julia内で独自にCondaを使っているので,関係なかった。
JuliaのENV["PYTHON"]で設定するPATHがJuliaが独自につかうPythonのPATH設定だったことを学んだ。
.condaディレクトリを削除してから,PyPlotを入れ直す
これも関係ない。
LD_LIBRARY_PATHにJulia内で使うCondaのライブラリのPATHを追加
最初のエラーを検索すると,結構出てくる。Julia関係なしのPythonだけの話だといっぱい出てくる。
検索した中にこんな情報があった。
https://github.com/JuliaPy/Conda.jl/issues/182#issuecomment-813023645
ライブラリがないというなら,PATHを通す。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.julia/conda/3/lib
実際これをやってから,Juliaを起動するとエラーがでなくなった。
ただ,Jupyter labを起動して,using PyPlotってやるとエラーがでる。Jupyter labはターミナルのPATH設定を反映してくれるわけではないんだなということを学んだ。
で,ほぼ同じ環境でエラーが出ないMacBook Airの設定を見ていて,mklのバージョンが違うことを発見して,mklのバージョン変更して,今に至る。