cocolog:93064720
Python 少しアップデートしたら matplotlib が font cache まわりで Permission denied を吐くようになった。やめてくれよぉ…。 (JRF 3924)
JRF 2021年10月13日 (水)
Python 3.7.11 で matplotlib 3.4.2 での問題。うまくいっていた前は Python 3.7.7 で matplotlib 3.1.3 だった。
JRF2021/10/132962
conda install matplotlib=3.1.3 matplotlib-base=3.1.3
JRF2021/10/131963
…としても、結局、~/.matplotlib/fontlist-v310.json を消してやりなおすと同様のエラーが出た。すると matplotlib のエラーではないのだろう。
JRF2021/10/139289
とりあえず、
conda install matplotlib matplotlib-base
…にして元に戻してから、fontlist-v330.json のパーミッションが 070 だったのを以前の fontlist-v310.jon と同じ 774 にして動いてはいるが、この先が心配なところ。
JRF2021/10/134100
おそらく matplotlib のエラーではなく、Python 本体のエラーなのだろう。または、ググっても出ないあたり、私の特殊な Cygwin 環境とのからみで出ているエラーかもしれない。
報告すべきか…。でも、原因が特定できないし…。なにより英語が…。
JRF2021/10/138495
……。
ちなみに python を 3.7.11 から python 3.7.7 に下げてみてもダメだった。Python 本体というより、ライブラリのどれかがおかしいのだろう。
JRF2021/10/132406
……。
OS は Windows 10。conda は 4.10.3。anaconda は custom になってる。Cygwin の bash & mintty から Windows の Anaconda の Python を使っている。
ちなみに Python 3.8 系で試そうと conda install python=3.8 をしたら、conflict がどうとかで時間がかかり過ぎて実質インストールできなかった。
JRF2021/10/138697
……。
……。
あっ、解決した。
結局のところは、一度、fontlist-v330.json だけでなく ~/.matplotlib のディレクトリを全部削除し、~/.matplotlib のディレクトリを再度作らせれば良かった。
しかし、なぜそうなのかがわからない。
JRF2021/10/145319
試しに、json.dump でファイルを書くだけのプログラムを作っていろいろ試したところ、他のディレクトリだとパーミッションが正しいのに、~/.matplotlib に書いたときだけなぜかパーミッションが 070 になってしまうということになっていた。
そこで試しに ~/.matplotlib を削除してみたらどうなるか…と試してみたらうまくいった…という感じ。ただ、前の ~/.matplotlib のディレクトリの何が悪かったかは未だにというか、もうわからない。
JRF2021/10/143642
なんとなく Windows 10 のアップデートがらみで、以前の Python が作った「不正」なディレクトリ・パーミッションに関しエラーが出ているのではないか?
JRF2021/10/143385
……。
結局、Anaconda を anaconda-clean を利用してアンインストールしてから再インストールした。.conda なども .matplotlib と同じ症状があったため。env 等が変わるがしかたがない。
JRF2021/10/148372
<pre>
PermissionError: [Errno 13] Permission denied: 'C:\\home\\[USERNAME]\\.matplotlib\\fontlist-v330.json'
</pre>
JRF2021/10/137770