Wordcloud AttributeError: объект «TransposedFont» не имеет атрибута «getbbox»

Я попытался запустить следующий код для создания облака слов.

text = 'word1 word2 word2 word3 word3 word3'

from wordcloud import WordCloud

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

Но я столкнулся с этой ошибкой:

---------------------------------------------------------------------------
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'

Это полная трассировка ошибки, которую я получил, когда запускал код в своем блокноте Jupyter.

Что это за ошибка и как ее решить? Я не могу понять, что это за TransposedFont, когда я не использовал ни одного аргумента с таким именем в функции WordCloud.

Где именно? Пожалуйста, обновите свой пост с полной трассировкой ошибки — посмотрите, как создать минимально воспроизводимый пример.

desertnaut 30.06.2023 06:33

@desertnaut Я обновил полную трассировку ошибок. Я запускаю этот код в Windows после установки wordcloud с помощью команды pip.

Rama 30.06.2023 11:28

Вы видели здесь и пробовали это решение или те, что под ним? (Добавьте магический символ % впереди и запустите эти pip installпредложения в блокноте. Так же, как %pip install --upgrade Pillow и pip install --upgrade numpy. Затем после каждого перезапуска ядра и только после обновления пробуйте запускать код.

Wayne 01.07.2023 03:23

@Wayne Я установил / обновил pip и Pillow, как было предложено, и код сработал и сгенерировал облако слов. Большое спасибо.

Rama 02.07.2023 04:52
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение состояло в том, чтобы обновить pip и pillow, основываясь на проблеме, опубликованной на GitHub.
См. комментарии под постом выше, чтобы узнать, как он решил ошибку, описанную здесь.

Другие вопросы по теме