1. 場景描述
linux服務器下安裝了Anaconda3,執行Pyhton的K-means算法,結果出現如下圖的中文字符亂碼。上次已經解決了,忘記記錄解決流程了,這次配置了一台新的服務器,又出現,默認不配置的話matplotlib畫圖就會亂碼,這次把解決過程記錄下,希望能幫助自己和有需要的朋友。
2. 解決方案
網上有好幾個解決方案,只介紹自己實戰可行的。
1. 查看matplotlib字體位置
python
import matplotlib
print(matplotlib.matplotlib_fname())
#記錄下來,字體位置我的是:/home/ruanjianlaowang/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
exit()
2. 上傳字體到服務器
cd /home/ruanjianlaowang/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
通過ftp或者其他方式,將字體傳上去,我們傳的是:simhei.ttf
3. 刪除字體緩存
cd ~/.cache/matplotlib
rm -rf *
4. 重啟python應用
nohup python k-means.py &
說明: 假如還沒生效,再更改個配置文件試試。(我們以前沒更改這個配置文件,但是這次發生了個插曲,這次用的jmeter測試,一直還是亂碼,后來改了這個還是不行,原來是jmeter的問題)
cd /home/ruanjianlaowang/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data
vi matplotlibrc
font.family : sans-serif #去掉前面的#
font.serif : simhei, DejaVu Serif, #新加了simhei
插曲
這次用的jmeter測試,發現都更改了還是亂碼,后來jmeter的請求中增加了utf-8參數才可以。
I’m 「軟件老王」,如果覺得還可以的話,關注下唄,后續更新秒知!歡迎討論區、同名公眾號留言交流!