ことの始まり
scikit-learn_0.22.1にanaconda on Mac Catalina を導入しましたが、いざJupyter Notebook でモジュールをインポートしよとすると、悲しいかな、最初のnumpy のimport でKernel Deadとなり、[ ]
で数字も入らず、notebook が使えなくなりました。
結局、nomkl のバージョンにリビルドしました。 MKLをインテルのサイトより導入するというのも考えましたが、他のSWの整合性もあるので、これ以上、MKLを入れてローカルの稼働環境の整備に時間を費やすのもと思い。 nomkl で稼働させる手順をメモしました。
ログのとおり、かなりのモジュールを入れ替えてしまいますので、自己責任でお願いいたします。 仕事のマシンへの適用は、フルバックアップするなど、十分慎重に対応が求められます。
Kernel Dead のターミナル上のエラーメッセージ
import numpy as np の最初のモジュールを読み込もうとしたところ、以下のようなエラーメッセージを出力されました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INTEL MKL ERROR: dlopen(/Users/so-wi/anaconda3/lib/libmkl_intel_thread.dylib, 9): Library not loaded: @rpath/libiomp5.dylib
Referenced from: /Users/so-wi/anaconda3/lib/libmkl_intel_thread.dylib
Reason: image not found.
Intel MKL FATAL ERROR: Cannot load libmkl_intel_thread.dylib.
[I 09:18:52.333 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
kernel **deleted**d-4c1e-9a54-301a5ab4b684 restarted
INTEL MKL ERROR: dlopen(/Users/so-wi/anaconda3/lib/libmkl_intel_thread.dylib, 9): Library not loaded: @rpath/libiomp5.dylib
Referenced from: /Users/so-wi/anaconda3/lib/libmkl_intel_thread.dylib
Reason: image not found.
Intel MKL FATAL ERROR: Cannot load libmkl_intel_thread.dylib.
[I 09:19:13.339 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
kernel 3d9ff618-8c1d-4c1e-9a54-301a5ab4b684 restarted
[I 09:19:46.289 NotebookApp] Saving file at **deleted**1.ipynb
[W 09:19:46.291 NotebookApp] Notebook **deleted**.ipynb is not trusted
[I 09:47:25.793 NotebookApp] Starting buffering for **deleted**3df29029a423ee3
参考にしたネットの記事
- Intel MKL FATAL ERROR: Cannot load libmkl_core.dylib でググる
- 参考にした記事はまさしくエラーメッセージがタイトルです
- mklでないnumpy、scipy等をインストールし、mklサービスを削除するという内容です
1
2
conda install nomkl numpy scipy scikit-learn numexpr
conda remove mkl mkl-service
オペレーションログ
以下が実際のログのポイント箇所です。ご覧のとおり、かなりのモジュールが削除されますので、要注意です。 モジュールを都度いれていけばいいんですけど。 いつも使うモジュールが何か把握しておくといいでしょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
sudo conda remove mkl mkl-service
The following NEW packages will be INSTALLED:
prompt-toolkit pkgs/main/noarch::prompt-toolkit-3.0.4-py_0
The following packages will be REMOVED:
alabaster-0.7.12-py37_0
anaconda-2020.02-py37_0
anaconda-project-0.8.4-py_0
applaunchservices-0.2.1-py_0
appscript-1.1.0-py37h1de35cc_0
argh-0.26.2-py37_0
asn1crypto-1.3.0-py37_0
astroid-2.3.3-py37_0
astropy-4.0-py37h1de35cc_0
atomicwrites-1.3.0-py37_1
autopep8-1.4.4-py_0
babel-2.8.0-py_0
backports.shutil_get_terminal_size-1.0.0-py37_2
bitarray-1.2.1-py37h1de35cc_0
bkcharts-0.2-py37_0
blas-1.0-mkl
blosc-1.16.3-hd9629dc_0
bokeh-1.4.0-py37_0
boto-2.49.0-py37_0
bottleneck-1.3.2-py37h776bbcc_0
cloudpickle-1.3.0-py_0
colorama-0.4.3-py_0
contextlib2-0.6.0.post1-py_0
curl-7.68.0-ha441bb4_0
cycler-0.10.0-py37_0
cython-0.29.15-py37h0a44026_0
cytoolz-0.10.1-py37h1de35cc_0
dask-2.11.0-py_0
dask-core-2.11.0-py_0
diff-match-patch-20181111-py_0
distributed-2.11.0-py37_0
docutils-0.16-py37_0
et_xmlfile-1.0.1-py37_0
fastcache-1.1.0-py37h1de35cc_0
flake8-3.7.9-py37_0
flask-1.1.1-py_0
fsspec-0.6.2-py_0
get_terminal_size-1.0.0-h7520d66_0
gevent-1.4.0-py37h1de35cc_0
gmp-6.1.2-hb37e062_1
gmpy2-2.0.8-py37h6ef4df4_2
greenlet-0.4.15-py37h1de35cc_0
h5py-2.10.0-py37h3134771_0
hdf5-1.10.4-hfa1e0ec_0
heapdict-1.0.1-py_0
html5lib-1.0.1-py37_0
hypothesis-5.5.4-py_0
imageio-2.6.1-py37_0
imagesize-1.2.0-py_0
intel-openmp-2019.4-233
intervaltree-3.0.2-py_0
isort-4.3.21-py37_0
itsdangerous-1.1.0-py37_0
jbig-2.1-h4d881f8_0
jdcal-1.4.1-py_0
joblib-0.14.1-py_0
jupyter-1.0.0-py37_7
jupyter_console-6.1.0-py_0
keyring-21.1.0-py37_0
kiwisolver-1.1.0-py37h0a44026_0
krb5-1.17.1-hddcf347_0
lazy-object-proxy-1.4.3-py37h1de35cc_0
libcurl-7.68.0-h051b688_0
libcxxabi-4.0.1-hcfea43d_1
libgfortran-3.0.1-h93005f0_2
libspatialindex-1.9.3-h0a44026_0
libssh2-1.9.0-ha12b0ac_1
libxslt-1.1.33-h33a18ac_0
llvm-openmp-4.0.1-hcfea43d_1
llvmlite-0.31.0-py37h1341992_0
locket-0.2.0-py37_1
lxml-4.5.0-py37hef8c89e_0
matplotlib-3.1.3-py37_0
matplotlib-base-3.1.3-py37h9aa3819_0
mccabe-0.6.1-py37_1
mkl-2019.4-233
mkl-service-2.3.0-py37hfbe908c_0
mkl_fft-1.0.15-py37h5e564d8_0
mkl_random-1.1.0-py37ha771720_0
mock-4.0.1-py_0
more-itertools-8.2.0-py_0
mpc-1.1.0-h6ef4df4_1
mpfr-4.0.1-h3018a27_3
mpmath-1.1.0-py37_0
msgpack-python-0.6.1-py37h04f5b5a_1
multipledispatch-0.6.0-py37_0
networkx-2.4-py_0
nltk-3.4.5-py37_0
nose-1.3.7-py37_2
numba-0.48.0-py37h6c726b0_0
numexpr-2.7.1-py37hce01a72_0
numpy-1.18.1-py37h7241aed_0
numpy-base-1.18.1-py37h6575580_1
numpydoc-0.9.2-py_0
openpyxl-3.0.3-py_0
packaging-20.1-py_0
pandas-1.0.1-py37h6c726b0_0
partd-1.1.0-py_0
path-13.1.0-py37_0
path.py-12.4.0-0
pathlib2-2.3.5-py37_0
pathtools-0.1.2-py_1
patsy-0.5.1-py37_0
pep8-1.7.1-py37_0
pluggy-0.13.1-py37_0
ply-3.11-py37_0
py-1.8.1-py_0
pycodestyle-2.5.0-py37_0
pycrypto-2.6.1-py37h1de35cc_9
pycurl-7.43.0.5-py37ha12b0ac_0
pydocstyle-4.0.1-py_0
pyflakes-2.1.1-py37_0
pylint-2.4.4-py37_0
pyodbc-4.0.30-py37h0a44026_0
pyparsing-2.4.6-py_0
pytables-3.6.1-py37h5bccee9_0
pytest-5.3.5-py37_0
pytest-arraydiff-0.3-py37h39e3cac_0
pytest-astropy-0.8.0-py_0
pytest-astropy-header-0.1.2-py_0
pytest-doctestplus-0.5.0-py_0
pytest-openfiles-0.4.0-py_0
pytest-remotedata-0.3.2-py37_0
python-jsonrpc-server-0.3.4-py_0
python-language-server-0.31.7-py37_0
pywavelets-1.1.1-py37h1de35cc_0
qdarkstyle-2.8-py_0
qtawesome-0.6.1-py_0
qtconsole-4.6.0-py_1
rope-0.16.0-py_0
rtree-0.9.3-py37_0
scikit-image-0.16.2-py37h6c726b0_0
scikit-learn-0.22.1-py37h27c97d8_0
scipy-1.4.1-py37h9fa6033_0
seaborn-0.10.0-py_0
simplegeneric-0.8.1-py37_2
singledispatch-3.4.0.3-py37_0
snappy-1.1.7-he62c110_3
snowballstemmer-2.0.0-py_0
sortedcollections-1.1.2-py37_0
sortedcontainers-2.1.0-py37_0
sphinx-2.4.0-py_0
sphinxcontrib-1.0-py37_1
sphinxcontrib-applehelp-1.0.1-py_0
sphinxcontrib-devhelp-1.0.1-py_0
sphinxcontrib-htmlhelp-1.0.2-py_0
sphinxcontrib-jsmath-1.0.1-py_0
sphinxcontrib-qthelp-1.0.2-py_0
sphinxcontrib-serializinghtml-1.1.3-py_0
sphinxcontrib-websupport-1.2.0-py_0
spyder-4.0.1-py37_0
spyder-kernels-1.8.1-py37_0
sqlalchemy-1.3.13-py37h1de35cc_0
statsmodels-0.11.0-py37h1de35cc_0
sympy-1.5.1-py37_0
tbb-2020.0-h04f5b5a_0
tblib-1.6.0-py_0
toolz-0.10.0-py_0
ujson-1.35-py37h1de35cc_0
unicodecsv-0.14.1-py37_0
unixodbc-2.3.7-h1de35cc_0
watchdog-0.10.2-py37h1de35cc_0
werkzeug-1.0.0-py_0
wrapt-1.11.2-py37h1de35cc_0
wurlitzer-2.0.0-py37_0
xlrd-1.2.0-py37_0
xlsxwriter-1.2.7-py_0
xlwings-0.17.1-py37_0
xlwt-1.3.0-py37_0
yapf-0.28.0-py_0
zict-1.0.0-py_0
更に、以下のモジュールが入れ替わります。ダウングレードされるものも出てきます。 そして、yest to go for it もしくは、no to give up です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
The following packages will be UPDATED:
beautifulsoup4 4.8.2-py37_0 --> 4.9.0-py37_0
bleach pkgs/main/osx-64::bleach-3.1.0-py37_0 --> pkgs/main/noarch::bleach-3.1.4-py_0
certifi 2019.11.28-py37_0 --> 2020.4.5.1-py37_0
click pkgs/main/osx-64::click-7.0-py37_0 --> pkgs/main/noarch::click-7.1.2-py_0
cryptography 2.8-py37ha12b0ac_0 --> 2.9.2-py37ha12b0ac_0
dbus 1.13.12-h90a0687_0 --> 1.13.14-h517e14e_0
decorator 4.4.1-py_0 --> 4.4.2-py_0
icu 58.2-h4b95b61_1 --> 58.2-h0a44026_3
idna pkgs/main/osx-64::idna-2.8-py37_0 --> pkgs/main/noarch::idna-2.9-py_1
ipython 7.12.0-py37h5ca1d4c_0 --> 7.13.0-py37h5ca1d4c_0
jedi 0.14.1-py37_0 --> 0.17.0-py37_0
jinja2 2.11.1-py_0 --> 2.11.2-py_0
json5 0.9.1-py_0 --> 0.9.4-py_0
jupyter_client pkgs/main/osx-64::jupyter_client-5.3.~ --> pkgs/main/noarch::jupyter_client-6.1.3-py_0
jupyter_core 4.6.1-py37_0 --> 4.6.3-py37_0
jupyterlab_server 1.0.6-py_0 --> 1.1.1-py_0
libcxx 4.0.1-hcfea43d_1 --> 10.0.0-1
libffi 3.2.1-h475c297_4 --> 3.2.1-h0a44026_6
libiconv 1.15-hdd342a3_7 --> 1.16-h1de35cc_0
liblief 0.9.0-h2a1bed3_2 --> 0.10.1-h0a44026_0
nbformat 5.0.4-py_0 --> 5.0.6-py_0
ncurses 6.2-h0a44026_0 --> 6.2-h0a44026_1
openssl 1.1.1d-h1de35cc_4 --> 1.1.1g-h1de35cc_0
parso 0.5.2-py_0 --> 0.7.0-py_0
pillow 7.0.0-py37h4655f20_0 --> 7.1.2-py37h4655f20_0
pip 20.0.2-py37_1 --> 20.0.2-py37_3
prompt_toolkit 3.0.3-py_0 --> 3.0.4-0
psutil 5.6.7-py37h1de35cc_0 --> 5.7.0-py37h1de35cc_0
py-lief 0.9.0-py37h1413db1_2 --> 0.10.1-py37haf313ee_0
pycparser pkgs/main/osx-64::pycparser-2.19-py37~ --> pkgs/main/noarch::pycparser-2.20-py_0
pygments 2.5.2-py_0 --> 2.6.1-py_0
pyrsistent 0.15.7-py37h1de35cc_0 --> 0.16.0-py37h1de35cc_0
python-libarchive~ pkgs/main/osx-64::python-libarchive-c~ --> pkgs/main/noarch::python-libarchive-c-2.9-py_0
pytz 2019.3-py_0 --> 2020.1-py_0
pyyaml 5.3-py37h1de35cc_0 --> 5.3.1-py37h1de35cc_0
requests 2.22.0-py37_1 --> 2.23.0-py37_0
setuptools 46.0.0-py37_0 --> 46.4.0-py37_0
soupsieve pkgs/main/osx-64::soupsieve-1.9.5-py3~ --> pkgs/main/noarch::soupsieve-2.0-py_0
sqlite 3.31.1-ha441bb4_0 --> 3.31.1-h5c1f38d_1
tornado 6.0.3-py37h1de35cc_3 --> 6.0.4-py37h1de35cc_1
tqdm 4.42.1-py_0 --> 4.46.0-py_0
wcwidth 0.1.8-py_0 --> 0.1.9-py_0
xz 5.2.4-h1de35cc_4 --> 5.2.5-h1de35cc_0
zipp 2.2.0-py_0 --> 3.1.0-py_0
The following packages will be DOWNGRADED:
lzo 2.10-h362108e_2 --> 2.10-h1de35cc_2
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
nomkl のscikit-learn, numpy, scipy を導入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
sudo conda install nomkl numpy scipy scikit-learn numexpr
Collecting package metadata (current_repodata.json): done
Solving environment: done
-## Package Plan ##
environment location: /Users/so-wi/anaconda3
added / updated specs:
- nomkl
- numexpr
- numpy
- scikit-learn
- scipy
The following packages will be downloaded:
package | build
---------------------------|-----------------
blas-1.0 | openblas 45 KB
joblib-0.14.1 | py_0 201 KB
libgfortran-3.0.1 | h93005f0_2 426 KB
libopenblas-0.3.6 | hdc02c5d_2 4.7 MB
nomkl-3.0 | 0 45 KB
numexpr-2.7.1 | py37h9ff8ad3_0 120 KB
numpy-1.18.1 | py37h0c13f30_0 5 KB
numpy-base-1.18.1 | py37hc72aeb7_1 3.9 MB
scikit-learn-0.22.1 | py37hebd9d1a_0 4.7 MB
scipy-1.4.1 | py37hba666df_0 12.8 MB
------------------------------------------------------------
Total: 26.9 MB
The following NEW packages will be INSTALLED:
blas pkgs/main/osx-64::blas-1.0-openblas
joblib pkgs/main/noarch::joblib-0.14.1-py_0
libgfortran pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2
libopenblas pkgs/main/osx-64::libopenblas-0.3.6-hdc02c5d_2
llvm-openmp pkgs/main/osx-64::llvm-openmp-10.0.0-h28b9765_0
nomkl pkgs/main/osx-64::nomkl-3.0-0
numexpr pkgs/main/osx-64::numexpr-2.7.1-py37h9ff8ad3_0
numpy pkgs/main/osx-64::numpy-1.18.1-py37h0c13f30_0
numpy-base pkgs/main/osx-64::numpy-base-1.18.1-py37hc72aeb7_1
scikit-learn pkgs/main/osx-64::scikit-learn-0.22.1-py37hebd9d1a_0
scipy pkgs/main/osx-64::scipy-1.4.1-py37hba666df_0
Proceed ([y]/n)? y
追記
私のマシンの場合は、nomkl numpy scipy scikit-learn numexpr以外にseaborn matplotlib pandasも入れ直しました。。。
でもこれから追加が必要かもしれません。conda list
で確認しましょう。