Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案

本文主要是介绍Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案。

报错内容如下:
2023-10-26T09:35:41.190459839Z Traceback (most recent call last):
2023-10-26T09:35:41.190502589Z File “lib/task/compute.py”, line 621, in
2023-10-26T09:35:41.190514101Z compute_match_rule(rule_data)
2023-10-26T09:35:41.190521681Z File “lib/task/compute.py”, line 557, in compute_match_rule
2023-10-26T09:35:41.190528938Z word_cloud = gen_word_cloud(sentence)
2023-10-26T09:35:41.190536512Z File “lib/task/compute.py”, line 87, in gen_word_cloud
2023-10-26T09:35:41.190543617Z wc.generate(words)
2023-10-26T09:35:41.190550476Z File “/usr/local/lib/python3.6/site-packages/wordcloud/wordcloud.py”, line 639, in generate
2023-10-26T09:35:41.190557571Z return self.generate_from_text(text)
2023-10-26T09:35:41.190567180Z File “/usr/local/lib/python3.6/site-packages/wordcloud/wordcloud.py”, line 621, in generate_from_text
2023-10-26T09:35:41.190598308Z self.generate_from_frequencies(words)
2023-10-26T09:35:41.190605934Z File “/usr/local/lib/python3.6/site-packages/wordcloud/wordcloud.py”, line 454, in generate_from_frequencies
2023-10-26T09:35:41.190613129Z max_font_size=self.height)
2023-10-26T09:35:41.190620131Z File “/usr/local/lib/python3.6/site-packages/wordcloud/wordcloud.py”, line 508, in generate_from_frequencies
2023-10-26T09:35:41.190627163Z box_size = draw.textbbox((0, 0), word, font=transposed_font, anchor=“lt”)
2023-10-26T09:35:41.190634139Z File “/usr/local/lib/python3.6/site-packages/PIL/ImageDraw.py”, line 651, in textbbox
2023-10-26T09:35:41.190641179Z raise ValueError(“Only supported for TrueType fonts”)
2023-10-26T09:35:41.190651002Z ValueError: Only supported for TrueType fonts

简介
在使用Python的Wordcloud库生成词云图时,有时会遇到报错信息:“Only supported for TrueType fonts”。这个报错通常是由于字体文件不兼容或缺失所致。本文将介绍这个问题的原因和解决方法,并提供相应的代码示例。

问题原因
Wordcloud库在生成词云图时需要加载字体文件来渲染文本。默认情况下,Wordcloud库使用的字体为“DroidSansMono.ttf”,它是一个TrueType字体文件。如果系统中没有安装或找不到这个字体文件,就会导致报错。

解决方法
为了解决这个问题,我们可以使用以下两种方法之一。

方法一:指定可用字体
我们可以在生成词云图时指定一个系统中已经安装的字体文件。

import matplotlib.pyplot as plt
from wordcloud import WordCloud# 指定字体文件路径
font_path = "/path/to/your/font.ttf"# 生成词云图
wordcloud = WordCloud(font_path=font_path).generate(text)# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

在上面的示例代码中,我们通过font_path参数指定了一个字体文件的路径。你需要将/path/to/your/font.ttf替换为实际字体文件的路径。这样,Wordcloud库将使用指定的字体文件来生成词云图,避免了报错。

方法二:使用其他字体文件
如果你没有特定的字体需求,你也可以使用其他已经安装的字体文件来生成词云图。

import matplotlib.pyplot as plt
from wordcloud import WordCloud# 指定字体名称
font_name = "Arial"# 生成词云图
wordcloud = WordCloud(font_path=None, font_name=font_name).generate(text)# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

在上面的示例代码中,我们通过font_name参数指定了一个系统中已经安装的字体名称,例如"Arial"。由于我们没有指定具体的字体文件路径,Wordcloud库会尝试使用指定的字体名称来生成词云图。这样,我们也可以避免“Only supported for TrueType fonts”的报错。

注意,如果上面方法还有问题,可以尝试检查系统是否安装字体库:

FROM python:3.6WORKDIR /app
ADD . /app
ADD ./requirements.txt /appRUN  sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list \&& apt update \&& apt install libboost-python-dev tzdata -y \&& apt install libfreetype6 -y \&& apt install gcc libffi-dev python3-dev libevent-dev libxml2-dev libxslt-dev -y\&& rm -rf /var/lib/apt/lists/* \&& pip install -i http://mirrors.aliyun.com/pypi/simple --upgrade pip --trusted-host mirrors.aliyun.com \&& pip install -i http://mirrors.aliyun.com/pypi/simple setuptools==58.0.1 --trusted-host mirrors.aliyun.com \&& pip install -i http://mirrors.aliyun.com/pypi/simple pytest-benchmark==3.4.1 --trusted-host mirrors.aliyun.com \&& pip install -i http://mirrors.aliyun.com/pypi/simple pytest-runner==5.3.1 --trusted-host mirrors.aliyun.com \&& pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /app/requirements.txt --trusted-host pypi.tuna.tsinghua.edu.cn --default-timeout=1000ENV PYTHONPATH "${PYTHONPATH}:/app"
ENV TZ Asia/Shanghai

检查对应PIL版本是否匹配wordcloud:

Pillow==10.0.1
wordcloud==1.9.2

总结
在使用Python的Wordcloud库生成词云图时,如果遇到“Only supported for TrueType fonts”的报错,我们可以通过指定可用的字体文件或使用其他已经安装的字体文件来解决这个问题。通过以上的方法,我们可以顺利生成并显示词云图,从而实现更好的数据可视化效果。

这篇关于Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/286450

相关文章

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核