_TIPropertyValueIsValid called with 4 on nil context!が出る原因と対処法
matplotlibで以下のエラーメッセージが出たのだが,内容や原因が全くわからなかったので状況をメモしておく.
2021-08-28 13:44:34.218 python3[29922:788064] _TIPropertyValueIsValid called with 4 on nil context!
2021-08-28 13:44:34.218 python3[29922:788064] imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing.
2021-08-28 13:44:34.218 python3[29922:788064] Text input context does not respond to _valueForTIProperty:
2021-08-28 13:44:34.218 python3[29922:788064] _TIPropertyValueIsValid called with 4 on nil context!
2021-08-28 13:44:34.218 python3[29922:788064] imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing.
2021-08-28 13:44:34.218 python3[29922:788064] Text input context does not respond to _valueForTIProperty:
Sponsored by Google AdSense
環境
sw_vers
ProductName: macOS
ProductVersion: 11.5.1
BuildVersion: 20G80
状況
plt.show()
で表示したグラフにフォーカスを当てたり外したりするとこのメッセージが表示される.(以下のgif画像の通り)- 描画自体は自分の確認の限り問題ない.
原因
これはmatplotlibのWarningではなく,macのWarningのよう.
現に,Swiftでも同様のメッセージが表示されるそう.
入力ソースが原因のよう.
解決方法
英語の入力方式を「English - ABC」に変更すれば良い.
おそらく,JIS配列のキーボードでコードを書く人の多くはバックスラッシュを「¥」で入力できるようにするために「日本語 - ローマ字入力」にして,「半角英字」にチェックを入れていると思われる.
自分の設定はこんな感じ.「設定」>「キーボード」>「入力ソース」で確認できる.
このように入力ソースが英語じゃないことにより表示されているエラーメッセージらしい.
ただ,直接的な影響があるわけではない(ターミナルのログが流れてしまうという影響はあるが…)ので,簡単にバックスラッシュ入力ができる,「日本語 - ローマ字入力」の方がマシなのではないかと思う.
また,これは英語圏の人があまり出会わないエラーなのではないかと想像されるので改善されるまでは時間がかかりそう.(そもそも自分の確認した限り描画自体は正しく行われており,バグですらないため,改善されにくいと考える.)