使用wordcloud时明明是字符串格式却遇到TypeError: expected string or bytes-like object

使用wordcloud时明明是字符串格式却遇到TypeError: expected string or bytes-like object

困扰了上午两小时的问题,下午五分钟想到原因,果然debug遇到问题不如歇一歇调个状态,还是记录一下吧,万一有和我一样的呢对吧

今天做一个词云的时候遇到的问题
原代码是:

def wordcloud(sorted_news):
    str = f'{today_str},' + ",".join([k for k, v in sorted_news.items()])
    sentence_seged = jieba.lcut(str)
    swords = stopwords()
    jieba_text = []
    for word in sentence_seged:
        if word not in swords:
            jieba_text.append(word)
    wd_join_text = " ".join(jieba_text)
    mask = np.array(Image.open("./weibo.png"))
    wc = WordCloud(font_path="msyh.ttf", width=1600, height=900, mask=mask).generate_from_text(wd_join_text)
    #...以下省略

然后哩,就在最后这行遇到了TypeError: expected string or bytes-like object,我检查反复思考,以为是wordcloud库的版本问题,查找资料后又发现没啥问题,于是我迷惑了
晚上又打开电脑,仔细检查报错的追踪路径和代码,发现:

Traceback (most recent call last):
  File "***.py", line 151, in <module>
    wordcloud(sorted_news)
  File "***.py", line 119, in wordcloud
    wc = WordCloud(font_path="msyh.ttf", width=1600, height=900, mask=mask).generate(wd_join_text)
  File "D:\download\anaconda\lib\site-packages\wordcloud\wordcloud.py", line 632, in generate
    return self.generate_from_text(text)
  File "D:\download\anaconda\lib\site-packages\wordcloud\wordcloud.py", line 614, in generate_from_text
    self.generate_from_frequencies(words)
  File "D:\download\anaconda\lib\site-packages\wordcloud\wordcloud.py", line 446, in generate_from_frequencies
    self.generate_from_frequencies(dict(frequencies[:2]),
    font = ImageFont.truetype(self.font_path, font_size)
  File "D:\download\anaconda\lib\site-packages\PIL\ImageFont.py", line 853, in truetype
    return freetype(font)
  File "D:\download\anaconda\lib\site-packages\PIL\ImageFont.py", line 850, in freetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "D:\download\anaconda\lib\site-packages\PIL\ImageFont.py", line 173, in __init__
    freetype_version = parse_version(features.version_module("freetype2"))
  File "D:\download\anaconda\lib\site-packages\packaging\version.py", line 57, in parse
    return Version(version)
  File "D:\download\anaconda\lib\site-packages\packaging\version.py", line 296, in __init__
    match = self._regex.search(version)
TypeError: expected string or bytes-like object

看朋友们,从wordcloud的路径找到了PIL的路径,找到了ImageFont的问题,然后到了version的问题,所以我终于怀疑到了PIL库的问题,一查,真是
附一个参考链接:PIL在win10中引用字体文件时报错TypeError: expected string or bytes-like object
在这里感谢博主

在下载8.3.1版本时又遇到问题,pip install pillow==8.3.1太慢了,于是换个国内镜像进行下载

pip install pillow -i https://mirrors.aliyun.com/pypi/simple

再附一个参考链接:Python安装pillow(3.8.1版本)

大功告成!!
在这里插入图片描述

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络安全知识培训心得体会 网络安全知识培训心得体会1 今天,我们听取了关于计算机网络安全防范的讲座。主要讲解了网络给我们生活带来哪 些便捷和关于应用网络我们应该注意哪些问题,如何正确的使用网络以及一些防范网络 侵犯的方法。 现如今,随之科技的不断进步,计算机在社会生活各个领域的广泛运用,人们对计算机 刻需求,办公娱乐都离不开它。网络已成为一个无处不在、无所不用的工具。然而, 网络安全问题也越来越突出,目前很多不法分子利用网络手段实行诈骗,骗取他人钱财 ,还有的开发病毒破坏或窃取他人的资料。由于计算机网络联接形式的多样性、终端分 布的不均匀性、开放性、网络资源的共享性等因素,致使我们的计算机网络容易遭受病 毒和其它不轨行为的攻击。这样一来它将会严重的影响我们的生活。 计算机网络安全是指网络系统的硬、软件及系统中的数据受到保护,不受偶然或恶意的 原因而遭到破坏、更改、泄露,系统连续、可靠、正常地运行,网络服务不中断。计算 机和网络技术具有的复杂性和多样性,使得计算机和网络安全成为一个需要持续更新和 提高的领域。目前因互联网本身没有空和地域的限制,每当有一种新的攻击手段产生 ,就能很快传遍,这些攻击手段利用网络和系统漏洞进行攻击从而造成计算机系统及网 络瘫痪。 网络是一把双刃剑,它给我们带来资源、娱乐的同也伴随的不良信息、不良行为的潜 入,我们经常会利用电脑查阅资料,做文件或者听歌游戏,常常会看到一些网站中的广 告和链接,有的候可能会突然弹出能够吸引我们眼球页面,中奖信息、游戏活动。而 大家也许会因为好奇进入了页面,却不知道自己正在一步步的进入敌人的圈套,而这些 问题在网络中却很难被屏蔽,网络是一个很庞大整天,想全方面的管理和整治是很难做 到的,这也就要求我们每个人在用的候不要单单享受,忽略可能带来的危害。 目前有很多的事例说明因为大家对网络防范的轻视造成自己的财产损失,强大的网络诱 惑迷失了大家,所以我们在用计算机一定要刻的.注意。听取讲解之后每个人对于网络 安全都有了新的认识。为确保信息的安全与畅通,我们必须不断加强和提高网络安全防 范意识,多学生网络防范知识,更好的利用计算机,更好的学习生活! 网络安全知识培训心得体会2 如今,互联网在社会上越来越普及,网络道德与礼貌也日益重要。网络虽是虚拟世界, 但仍要讲究道德与礼貌。 在现实生活中,人们相互交往都很注意讲文明、讲礼貌,愿意展示自己有文化、有修 养、有良好品行的美好形象。 在虚拟社会中,人们交往互不谋面,可能交往的双方永远不知道对方是谁。这样,是不 是就可以不讲礼貌,可以信口开河、脏话连篇呢?不能!在网络这个虚拟社会中,由于 人与人之间的交往一般都是书面语言进行,所以谦和的态度、礼貌的语言、相互的尊重 就显得更加重要,它会使人感到温暖亲切,能自然地拉近双方的距离,消除陌生感,从 而使交往的双方友善地进行沟通。文明礼貌的言行举止会帮你在网友间架起友好交往的 桥梁。 如果开口骂人,说脏话,只会使大家厌恶,觉得你没修养。这种人在社会上和网络上是 没有立足之地的。据《楚天都市报》报道,荆州市有两个中学生用QQ聊天,其中一个说脏 话,另一个便将他拖进"黑名单"里。那个骂人的便用"珊瑚虫"版QQ查到对方所在的网吧 、机号,约上几个同学,找到他,把他活活打死了。后来被法院抓到,被判了刑。 讲道德,不仅仅涉及到不讲脏话,还必须言而有信。如果瞎回帖子,会让别人信以为真 ,做错事,害人害己。 另外,由于我们青少年正处于成长期,阅历少,经验不足,在网络这个缤繁世界游历 ,一定要注意树立自我保护意识,在自己的头脑里建立起"安全防火墙",以抵御不良 信息对我们的影响。标明限制信息的,如果自己处在限制区域内,一定不能进入。 再举个例子,我的几个同学在网上发现了一个打打杀杀的,叫什么《闪客快打》的游戏, 打开明明显示着"本游戏含暴力因素,未满18岁禁止进入",但他们却固执地闯进去玩 起来。由于玩多了,他们一看见同学就想冲上去打上几拳或踢上几腿,学习也直线下滑 。这是多么可悲的事儿呀!我们一定要吸取教训,不看未成年人不适宜的信息,不玩不 适宜未成人的游戏。 上网必须用自己注册的账号和密码,未经允许绝对不能盗用他人的账号和密码,加"好友 "要经过对方的允许与验证。别人在输入账号和密码,要自觉回避,不能偷看,这是 一种基本的美德。 别人制作的网页、动画,撰写的文字等都是制作人的知识产权,是受国家保护的,未经 允许绝对不能转载,署上自己的名字。 再谈谈安全问题。目前网上有不少骗子,利用儿童的轻信和好奇心约会儿童到某地会合 。这样的事儿即使你认识对方,也必须和家长商量,刻都不能放松警惕。最重要的是 ,不管什么候,都不能轻易将个人资料发布在网上。 好了!愿大家合理安排间,在网上无忧无虑,

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值