linuxBean14.04(84)conda upgrade --allで問題発生

ラベル: ,

前の関連記事:linuxBean14.04(83)LibreOfiice5.0.2のインストール


職場で使っているPentium4のノートパソコンでlinuxBean14.04(72)Anacondaで科学技術系Pythonパッケージを一括インストールするでインストールしたAnaconda3 2.3.0 をconda upgrade --allでアップグレードするとmatplotlibのプロットが出力できなくなりました。

numpy1.9.3でインストールされるlibgfortran1.0-0が原因だった


職場で使っているPentium4のマシンでAnaconda3 2.3.0 をconda upgrade --allでアップグレードしたところJupyter NotebookのセルをRunするとThe kernel has died, and the automatic restart has failed.と表示されて実行できませんでした
import matplotlib.pyplot as plt
import numpy as np
data = np.outer(range(10), range(1, 5))
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.set_title('Click somewhere on a line')
plt.show()
実行したのはjoferkington/mpldatacursorを改変したこのコードです。

PyCharmで実行してもProcess finished with exit code 132とでてきてプロットが表示されません。

PyCharmでprint(data)を3行目のあとに追加するとnumpyの実行結果は出力されたのでnumpyは動いておりmatplotlibが動いていないようです。

~/anaconda3フォルダを破棄してもう一度Anaconda3をインストールしてIPython Notebookで実行すると問題なくプロットが出力されました。

PyCharmからも同様に問題なくプロットが出力されました。

原因を追求するためにまずconda upgrade numpyとするとnumpyが1.9.2から1.10.0にアップグレードされました。

するとPyCharmでまたProcess finished with exit code 132となりました。

numpyが1.9.2からnumpy1.10.0にアップグレードしたのが原因かと思ってconda install numpy=1.9としてnumpyを1.9.3にダウングレードしました。

しかし解決しません。

そこでまた~/anaconda3フォルダを破棄してまたAnaconda3を再インストールしました。

conda upgrade numpy=1.9.3

今度はnumpyを1.9.2から1.9.3にアップグレードしました。

またProcess finished with exit code 132がでてくるようになりました。

conda install numpy=1.9.2でnumpyを1.9.3から1.9.2にダウングレードしました。

これで最初の状態に戻って解決すると思ったのですが解決しません。

そこでnumpyを1.9.3にアップグレードした時に新たにインストールされたlibgfortran 1.0-0をアンインストールしました。

conda remove libgfortran

するとちゃんとPyCharmでプロットが出力されるようになりました。

これで原因はnumpyを1.9.3にアップグレードするときに新たにインストールされるlibgfortranパッケージとわかりました。

libfortranをインストールするだけでmatplotlibのプロットが出てこなくなるので、numpyはもちろんnumpyを必要とするpandasもmatplotlibもアップグレードできません。

Jupyter Notebookのみインストールすると問題なし


Jupyter Notebookのセルがカーネルが死んでいるエラーが出て実行できなかったのもインストールしたパッケージ(今回はmatplotlib)にエラーが出ていたのが原因のようです。

conda install Jupyter

これでJupyterのみインストールするとJupyter Notebookのセルでmatplotlibのプロットが出力できるようになりました。

condaは不要なパッケージはアンイストールはしてくれないようなので、アップグレードしてからダウングレードしても問題は解決しませんでした。

~/anaconda3フォルダを破棄してまたAnaconda3を再インストールして、必要なパッケージのみアップグレードする必要があります。

libgfortranのインストールで問題が起こるのはCPUが古いせい?


Core i5のVirtualBoxのゲストのlinuxBean14.04のAnacondaではconda upgrade --allとして上記の問題は起こっていません。

libgfortranをインストールすると問題が起きるのはCPUがPentium4と古いもののせいのような気がしますが根拠は見つけていません。

とりあえず職場で稼働しているシステムの更新に伴って破棄される予定だったcore2のマシンを来週から2台もらえるようになったので今後はPentium4のマシンは使わなくて済みそうです。

参考にしたサイト


Exit Codes With Special Meanings
Bashのexit codes。Pythonのexit codesの解説は見つけられませんでした。

joferkington/mpldatacursor · GitHub
matplotlibのプロットでツールチップが使えるようになります。

次の関連記事:linuxBean14.04(85)Eclipse Mars 4.5.1で横スクロールすると字が滲む

PR

0 件のコメント:

コメントを投稿