真是巨大的坑,按照網上說的,matplotlib.use('agg'),修改matplotlibrc文件中的backend,plt.switch_backend('Agg'),%matplotlib inline統統失效,包括在啟動Jupyter時設置環境變量export MPLBACKEND=Agg,在運行Reader(sep=',').train_test_spilt(paths, target_name)時,依然會報錯。
之后看了一下報錯的堆棧,在執行這一句時,應該是啟動了新的進程,所以,在jupyter中無論怎么設置maplotlib,在新啟動的進程中,這個設置無法生效,萬般無奈下,按照報錯的其中一個文件python3.8/site-packages/mlbox/prediction/predictor.py,打開一看,瞬間氣暈了,15行開始寫了如下的語句
try:
matplotlib.use('TkAgg')
except:
pass
所以,這就難怪會報標題那樣的錯了,把這句話注掉,或者改成matplotlib.use('agg'),重啟kernel,一切完美!