-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Closed
Milestone
Description
Bug summary
Pillow 11.3.0 has deprecated the 'mode' parameter for PIL.Image.fromarray(). The DeprecationWarning causes Azure DevOps builds using matplotlib's plt.figure() to fail when PYTHONWARNINGS=error
Code for reproduction
This stacktrace is from an Azure DevOps Microsoft-hosted Windows agent ('windows-2019' VM image) using Python 3.9.13:
Traceback (most recent call last):
<our code deleted>
self._fig = plt.figure(figsize=(9, 6))
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\pyplot.py", line 1027, in figure
manager = new_figure_manager(
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\pyplot.py", line 550, in new_figure_manager
return _get_backend_mod().new_figure_manager(*args, **kwargs)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backend_bases.py", line 3507, in new_figure_manager
return cls.new_figure_manager_given_figure(num, fig)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backend_bases.py", line 3512, in new_figure_manager_given_figure
return cls.FigureCanvas.new_manager(figure, num)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backend_bases.py", line 1797, in new_manager
return cls.manager_class.create_with_canvas(cls, figure, num)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backends\_backend_tk.py", line 504, in create_with_canvas
manager = cls(canvas, num, window)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backends\_backend_tk.py", line 457, in __init__
super().__init__(canvas, num)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backend_bases.py", line 2665, in __init__
tools.add_tools_to_container(self.toolbar)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backend_tools.py", line 1007, in add_tools_to_container
container.add_tool(tool, group, position)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backend_bases.py", line 3323, in add_tool
self.add_toolitem(tool.name, group, position,
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backends\_backend_tk.py", line 980, in add_toolitem
button = NavigationToolbar2Tk._Button(frame, name, image_file, toggle,
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backends\_backend_tk.py", line 825, in _Button
NavigationToolbar2Tk._set_image_for_button(self, b)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backends\_backend_tk.py", line 767, in _set_image_for_button
im_alt = _recolor_icon(im, foreground)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\matplotlib\backends\_backend_tk.py", line 754, in _recolor_icon
return Image.fromarray(image_data, mode="RGBA")
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\PIL\Image.py", line 3314, in fromarray
deprecate("'mode' parameter", 13)
File "C:\hostedtoolcache\windows\Python\3.9.13\x64\lib\site-packages\PIL\_deprecate.py", line 68, in deprecate
warnings.warn(
DeprecationWarning: 'mode' parameter is deprecated and will be removed in Pillow 13 (2026-10-15)
Similar failures occur in Linux and Windows on Pythons 3.9 and 3.12.
Actual outcome
DeprecationWarning: 'mode' parameter is deprecated and will be removed in Pillow 13 (2026-10-15)
Expected outcome
No deprecation warning.
Additional information
Our DevOps pipelines started breaking with this on 2 July when pillow (installed via pip) upgraded from 11.2.1 to 11.3.0.
Operating system
Windows
Matplotlib Version
3.9.4
Matplotlib Backend
Not sure, TkAgg?
Python version
3.9.13
Jupyter version
N/A
Installation
pip
Metadata
Metadata
Assignees
Labels
No labels