pythonword-cloud

wordcloud AttributeError: 'TransposedFont' object has no attribute 'getbbox'


I tried to run the following code to generate a word cloud.

text = 'word1 word2 word2 word3 word3 word3'

from wordcloud import WordCloud

wordcloud = WordCloud(width=480, height=480).generate(text)

But I ran into this error:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-17-659d2fbc8555> in <module>
     8 
     9 # Generate the word cloud
---> 10 wordcloud.generate(text)
    11 
    12 # Display the word cloud

~\anaconda3\lib\site-packages\wordcloud\wordcloud.py in generate(self, text)
   637         self
   638         """
--> 639         return self.generate_from_text(text)
   640 
   641     def _check_generated(self):

~\anaconda3\lib\site-packages\wordcloud\wordcloud.py in generate_from_text(self, text)
   619         """
   620         words = self.process_text(text)
--> 621         self.generate_from_frequencies(words)
   622         return self
   623 

~\anaconda3\lib\site-packages\wordcloud\wordcloud.py in generate_from_frequencies(self, frequencies, max_font_size)
   451                 font_size = self.height
   452             else:
--> 453                 self.generate_from_frequencies(dict(frequencies[:2]),
   454                                                max_font_size=self.height)
   455                 # find font sizes

~\anaconda3\lib\site-packages\wordcloud\wordcloud.py in generate_from_frequencies(self, frequencies, max_font_size)
   506                     font, orientation=orientation)
   507                 # get size of resulting text
--> 508                 box_size = draw.textbbox((0, 0), word, font=transposed_font, anchor="lt")
   509                 # find possible places using integral image:
   510                 result = occupancy.sample_position(box_size[3] + self.margin,

~\anaconda3\lib\site-packages\PIL\ImageDraw.py in textbbox(self, xy, text, font, anchor, spacing, align, direction, features, language, stroke_width, embedded_color)
   565             font = self.getfont()
   566         mode = "RGBA" if embedded_color else self.fontmode
--> 567         bbox = font.getbbox(
   568             text, mode, direction, features, language, stroke_width, anchor
   569         )

AttributeError: 'TransposedFont' object has no attribute 'getbbox'

This is the full error trace I got when I run the code in my jupyter notebook.

What is this error and how to resolve this? I can't understand what is that TransposedFont when I haven't used any argument of that name in the WordCloud function.


Solution

  • The solution was to upgrade pip and pillow, as based on an issue posted at the word_cloud GitHub repo.
    See the comments below the post above for how it solved the error featured here.