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/285958

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(