Linux Ubuntu 16.04 Python matplotlib安装中文字体,黑体,楷体,Times New Roman等,解决中文乱码

Linux Ubuntu 16.04 Python matplotlib安装中文字体,Times New Roman等


当我们在Ubuntu Linux下使用Python matplotlib画图时,会发现不能用Times New Roman,楷体,黑体等Windows上常用的字体,尤其是用中文显示图标签时,会出现小方框/块,这是因为Linux下本身不自带这些常用字体(因为版权原因)。因此需要我们自己动手装,本人查找了了网上好多篇用时一天,,总之一言难尽,最后终于整好了。记录下了特别详细了的步骤,以供需要之人参考。绝对可靠。

一、用apt-get工具安装Times New Roman字体,即安装ttf-mscorefonts-installer,但此字体包,不包括楷体,黑体等。

如果只需用Times New Roman字体,可以参见本人此篇博客。 Ubuntu下安装Times New Roman字体.

二、将Windows下的黑体,楷体等安装到Ubuntu及matplotlib下。

上面提到mscorefonts这个字体包里不包含楷体黑体等,因此需要将Windows下的字体安装到Ubuntu下。下面以安装黑体为例,讲解具体步骤,学会一种,其它字体一样。

首先在Windows下,进入C:\Windows\Fonts目录,找到你想要的字体,即黑体,拷贝到一个新建文件夹,如本人命名的winfonts。如下两图
图1
在这里插入图片描述

三、将上面拷贝的字体上传到Ubuntu系统(注意Linux系统权限问题

本人用的Xshell和Xftp。在这一步,一直在上传到Ubuntu时,不成功,终于想到是权限问题。如下图,提示权限不够,第一次碰到Xftp上传不成功。。。正好Xftp5还强制更新,还以为这软件不更新用不了上传功能了,不过因为这次上传问题,让我发现要注意到Linux普通用户是不能改动根目录下文件夹,会提示权限不够。如下图,失败case。
在这里插入图片描述
这种情况,就是你直接把Windows下文件拷贝到Ubuntu虚拟机的/usr/share/fonts目录时,权限不够。查看/usr/share/fonts的权限如下
在这里插入图片描述
可以看到,普通用户是无法向这个目录写入文件的。因此我用su root命令切换到超级用户,发现竟然还是这个错误,不清楚为什么,各位博友,有清楚的请在评论中指出。但是,问题总会有多种方法解决的。不能直接上传到根目录下,那就先上传到普通用户下吧,也就是本人的家目录。如下图,在这里插入图片描述
可以看到终于成功了,很欣慰。。。
在这里插入图片描述
此时就好办了,切换到root用户将其拷贝到/usr/share/fonts目录下即可,有三种方式,
1)第一种两行代码
sudo -i #或者用su root,都是切换到root用户
cp -rf /home/rain/winfonts/ /usr/share/fonts
2)第二种一行代码,不用切换到root用户
sudo cp -rf winfonts/ /usr/share/fonts
3)第三种就是用户界面方式操作,就是用root权限打开一个文件管理器窗口,这种就跟Windows操作一样了,直接赋值粘贴即可。
sudo nautilus

到这里,我们终于把文件拷贝到/usr/share/fonts目录下了。如下图,
在这里插入图片描述

四、刷新Ubuntu系统字体缓存,和matplotlib字体缓存(matplotlib的字体缓存也要刷新,matplotlib才能用,重要)

这一步该刷新字体缓存了。首先在Ubuntu上打开LibreOffice,看一下字体里是没有黑体的,如下图
在这里插入图片描述
没装没刷新之前当然没有了!!
现在来用命令
sudo fc-cache -f -v
刷新Ubuntu字体缓存。如下图可以看到在我们的目录/usr/share/fonts/winfonts中找到一种新字体,就是咱们要安装的黑体啊!!!
在这里插入图片描述
然后重新打开libreoffice,见证奇迹的时刻!!!
在这里插入图片描述
我们的黑体终于能用了!!!到这里,你会发现你想用其它的楷体,宋体,都可以按上面步骤安装了。我在网上查到诸多博客,好多都。。。你们懂得,我用时一天终于自己摸索出来,特此记下来。希望对看到的你有所帮助。我们整理东西一定要自己验证过,要把重要细节写完美,否则,发到网上的都是垃圾内容。
在这里插入图片描述

五、接下来就是,刷新matplotlib字体缓存了。

首先看问题,如果在Ubuntu Linux下用matplotlib画图,如果没有安装中文字体。在中文处则显示乱码小方块。如下图
在这里插入图片描述
因此,我们要先安装中文字体,步骤就是上面。但是经过刚刚明明看到我们已经安装黑体,但是为什么还是显示乱码小方块呢。就是没有刷新matplotlib的字体缓存了。首先打开一个Python环境,找到matplotlib字体缓存目录。如下代码:
import matplotlib as plt
plt.get_cachedir()
本人机器上操作的如下图,
在这里插入图片描述
直接用如下命令
rm -rf /home/rain/.cache/matplotlib
删除这个缓存目录就可以了。如下图
在这里插入图片描述
接着在运行一下刚才的画图程序,见证奇迹的时刻到了!!!如下图
在这里插入图片描述
在这里插入图片描述
到这里,终于解决Ubuntu上Python matplotlib画图,用中文字体,simhei,times new roman的问题了。

六、但是,我发现竟然用楷体的时候有个问题

当在.py文件中用楷体时竟然还是小方块???明明libreoffice里面已经可以用了。难道是引用字体名不对?如下图:
在这里插入图片描述
在这里插入图片描述
看来的SimKai这个名字不对了,可以用如下命令看一下楷体的引用名是什么:
import matplotlib as plt
import matplotlib.font_manager as font_manager
fontpath = '/usr/share/fonts/truetype/msttcorefonts/simkai.ttf'
prop = font_manager.FontProperties(fname=fontpath)
print(prop.get_name())
结果如下图,竟然叫‘KaiTi’而不是‘SimKai’????
在这里插入图片描述
在.py文件中更证名字,然后又到了见证奇迹的时刻!!如下图
在这里插入图片描述
在这里插入图片描述
到这里你终于学到如果解决Ubuntu Python matplotlib画图中所以字体问题了,真是百转千折,但是你也深入了解了Linux许多原理,对于需要经常用Linux的你还是非常有帮助,如果你只需要用Python做机器学习换图,建议还是用windows+Anaconda+PyCharm+Notebook吧,不会遇到这么多配置问题,实力劝退一波哈哈。


七、参考文献

[1] https://blog.csdn.net/u014712482/article/details/80568540
[2] https://www.zhihu.com/question/25404709

  • 18
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 要在Ubuntu 16.04安装Python 3.9,您可以按照以下步骤操作: 1. 打开终端并更新软件包列表: sudo apt-get update 2. 安装依赖项: sudo apt-get install build-essential checkinstall sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev 3. 下载Python 3.9的源代码: wget https://www.python.org/ftp/python/3.9./Python-3.9..tgz 4. 解压缩下载的文件: tar -xvf Python-3.9..tgz 5. 进入解压缩后的目录: cd Python-3.9. 6. 配置安装选项: ./configure --enable-optimizations 7. 编译并安装Python 3.9: sudo make altinstall 8. 检查Python 3.9是否安装成功: python3.9 --version 如果成功安装,将显示Python 3.9的版本号。 希望这可以帮助您在Ubuntu 16.04安装Python 3.9。 ### 回答2: Ubuntu16.04作为一款Linux操作系统,已经比较老旧,但是针对python3.9的安装,还是可以通过一些方法来完成的。以下是安装python3.9的具体步骤: 1. 更新apt-get库 在终端输入以下命令: sudo apt-get update 2. 安装依赖包 在终端输入以下命令: sudo apt-get install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev 3. 下载并解压python3.9 在终端输入以下命令: wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz tar -xf Python-3.9.0.tgz 4. 编译和安装python3.9 在终端输入以下命令: cd Python-3.9.0 ./configure --enable-optimizations make -j8 sudo make altinstall 5. 检查python3.9版本是否安装完成 在终端输入以下命令: python3.9 --version 以上为Ubuntu16.04安装python3.9的详细步骤,但需要注意的是,在安装过程可能会遇到各种问题,例如出现依赖错误等。在遇到问题时,可以通过查询相关资料来解决,或者尝试升级到更高的Ubuntu版本再进行安装。 ### 回答3: Ubuntu 16.04的官方仓库默认安装的是Python 3.5版本,如果需要使用Python 3.9的话,则需要手动安装。下面提供两种方式:手动安装和通过ppa安装。 一、手动安装Python 3.9 1. 下载Python3.9的源代码 从Python官网下载源代码:https://www.python.org/downloads/,找到对应版本的源代码进行下载。 2. 安装编译Python3.9 解压下载的源代码,并依次执行如下命令: ``` sudo apt-get update sudo apt-get install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev wget cd Python-3.9.0 ./configure --enable-optimizations make -j8 sudo make altinstall ``` 上述命令,-j8表示利用8个CPU核心同时编译。如果你的CPU核心数不足8个,则将-j后的数字改为实际核心数。 3. 检查Python安装是否成功 执行如下命令,如果出现类似输出,则说明Python安装成功: ``` python3.9 --version ``` 二、通过PPA安装Python 3.9 1. 添加PPA源 执行如下命令: ``` sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update ``` 2. 安装Python 3.9 执行如下命令: ``` sudo apt-get install python3.9 ``` 3. 检查Python安装是否成功 执行如下命令,如果出现类似输出,则说明Python安装成功: ``` python3.9 --version ``` 以上两种方法均可以安装Python 3.9,推荐使用通过PPA安装的方式,这种方式更加方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值