-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Open
Description
What did you do?
Installed a package (matplotlib) with a Pillow dependency on Python 3.15
What did you expect to happen?
Build on CI
edit I think what actually this is due to is 3.15 wheels not being available for pillow
What actually happened?
Details
Downloaded opencv-python
Building pillow==12.0.0
Building scipy==1.16.3
Building numpy==2.3.5
× Failed to build `pillow==12.0.0`
├─▶ The build backend returned an error
╰─▶ Call to `backend.build_wheel` failed (exit status: 1)
[stdout]
running bdist_wheel
running build
running build_py
creating build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_binary.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/XVThumbImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PixarImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/GribStubImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageStat.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/QoiImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageDraw.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ContainerIO.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_deprecate.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageEnhance.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_util.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_version.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/features.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/TgaImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/JpegPresets.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageWin.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PcdImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PngImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/BlpImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/AvifImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/EpsImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/GbrImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PpmImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/TiffImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/McIdasImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageFont.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/JpegImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageText.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PaletteFile.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/WebPImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/SunImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageDraw2.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/Jpeg2KImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PsdImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageMode.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageTransform.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/report.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/FpxImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/GimpGradientFile.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/WmfImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PcxImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/WalImageFile.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/BdfFontFile.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageColor.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/DcxImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/IcnsImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageSequence.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageFilter.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageMath.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/IptcImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/GdImageFile.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/MpoImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/Hdf5StubImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageTk.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageMorph.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PalmImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/XpmImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/XbmImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/FontFile.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImagePath.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/FitsImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/Image.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/CurImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/BufrStubImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_typing.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageShow.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageOps.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/TiffTags.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/FtexImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ExifTags.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImagePalette.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PdfImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImtImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/FliImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/MpegImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageFile.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageCms.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageGrab.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PdfParser.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/DdsImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/GifImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/MspImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PSDraw.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/__main__.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_tkinter_finder.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageChops.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/PcfFontFile.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/IcoImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/__init__.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/ImageQt.py -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/SpiderImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/BmpImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/MicImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/SgiImagePlugin.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/GimpPaletteFile.py ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/TarIO.py -> build/lib.linux-x86_64-cpython-315/PIL
running egg_info
writing src/pillow.egg-info/PKG-INFO
writing dependency_links to src/pillow.egg-info/dependency_links.txt
writing requirements to src/pillow.egg-info/requires.txt
writing top-level names to src/pillow.egg-info/top_level.txt
reading manifest file 'src/pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'src/pillow.egg-info/SOURCES.txt'
copying src/PIL/_avif.pyi -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_imaging.pyi -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_imagingcms.pyi ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_imagingft.pyi -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_imagingmath.pyi ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_imagingmorph.pyi ->
build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_imagingtk.pyi -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/_webp.pyi -> build/lib.linux-x86_64-cpython-315/PIL
copying src/PIL/py.typed -> build/lib.linux-x86_64-cpython-315/PIL
running build_clib
building 'pil_imaging_mode' library
creating build/temp.linux-x86_64-cpython-315/src/libImaging
cc -pthread -fno-strict-overflow -Wsign-compare -Wunreachable-code
-DNDEBUG -g -O3 -Wall -O3 -fPIC -fPIC -c src/libImaging/Mode.c -o
build/temp.linux-x86_64-cpython-315/src/libImaging/Mode.o
ar rcs build/temp.linux-x86_64-cpython-315/libpil_imaging_mode.a
build/temp.linux-x86_64-cpython-315/src/libImaging/Mode.o
running build_ext
[stderr]
warning: no files found matching '*.c'
warning: no files found matching '*.h'
warning: no files found matching '*.sh'
warning: no files found matching '*.txt'
warning: no files found matching '.flake8'
warning: no previously-included files found matching '.clang-format'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.editorconfig'
warning: no previously-included files found matching '.readthedocs.yml'
warning: no previously-included files found matching 'codecov.yml'
warning: no previously-included files found matching 'renovate.json'
warning: no previously-included files found matching
'Tests/images/README.md'
warning: no previously-included files found matching
'Tests/images/crash*.tif'
warning: no previously-included files found matching
'Tests/images/string_dimension.tiff'
warning: no previously-included files matching '.git*' found anywhere
in distribution
warning: no previously-included files matching '*.so' found anywhere
in distribution
no previously-included directories found matching '.ci'
no previously-included directories found matching 'wheels'
no previously-included directories found matching 'winbuild/build'
no previously-included directories found matching 'winbuild/depends'
no previously-included directories found matching 'Tests/errors'
no previously-included directories found matching
'Tests/images/jpeg2000'
no previously-included directories found matching 'Tests/images/msp'
no previously-included directories found matching 'Tests/images/picins'
no previously-included directories found matching
'Tests/images/sunraster'
no previously-included directories found matching 'Tests/test-images'
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation/basic-installation.html
Traceback (most recent call last):
File "<string>", line 1101, in <module>
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/__init__.py",
line 115, in setup
return distutils.core.setup(**attrs)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/core.py",
line 186, in setup
return run_commands(dist)
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/core.py",
line 202, in run_commands
dist.run_commands()
~~~~~~~~~~~~~~~~~^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/dist.py",
line 1002, in run_commands
self.run_command(cmd)
~~~~~~~~~~~~~~~~^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/dist.py",
line 1102, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/dist.py",
line 1021, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/command/bdist_wheel.py",
line 370, in run
self.run_command("build")
~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/cmd.py",
line 357, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/dist.py",
line 1102, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/dist.py",
line 1021, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/command/build.py",
line 135, in run
self.run_command(cmd_name)
~~~~~~~~~~~~~~~~^^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/cmd.py",
line 357, in run_command
self.distribution.run_command(command)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/dist.py",
line 1102, in run_command
super().run_command(command)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/dist.py",
line 1021, in run_command
cmd_obj.run()
~~~~~~~~~~~^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/command/build_ext.py",
line 96, in run
_build_ext.run(self)
~~~~~~~~~~~~~~^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/_distutils/command/build_ext.py",
line 368, in run
self.build_extensions()
~~~~~~~~~~~~~~~~~~~~~^^
File "<string>", line 897, in build_extensions
RequiredDependencyException: jpeg
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 11, in <module>
wheel_filename =
backend.build_wheel("/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpkdWXj3",
{}, None)
File
"/home/runner/work/_temp/setup-uv-cache/sdists-v9/pypi/pillow/12.0.0/URQSc5nsInBdZ16w7Yiay/src/_custom_build/backend.py",
line 26, in build_wheel
return super().build_wheel(wheel_directory, config_settings,
metadata_directory)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/build_meta.py",
line 432, in build_wheel
return _build(['bdist_wheel'])
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/build_meta.py",
line 423, in _build
return self._build_with_temp_dir(
~~~~~~~~~~~~~~~~~~~~~~~~~^
cmd,
^^^^
...<3 lines>...
self._arbitrary_args(config_settings),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/build_meta.py",
line 404, in _build_with_temp_dir
self.run_setup()
~~~~~~~~~~~~~~^^
File
"/home/runner/work/_temp/setup-uv-cache/sdists-v9/pypi/pillow/12.0.0/URQSc5nsInBdZ16w7Yiay/src/_custom_build/backend.py",
line 20, in run_setup
return super().run_setup(setup_script)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File
"/home/runner/work/_temp/setup-uv-cache/builds-v0/.tmpk4DpPr/lib/python3.15/site-packages/setuptools/build_meta.py",
line 317, in run_setup
exec(code, locals())
~~~~^^^^^^^^^^^^^^^^
File "<string>", line 1118, in <module>
RequiredDependencyException:
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation/basic-installation.html
hint: This usually indicates a problem with the package or the build
environment.
help: `pillow` (v12.0.0) was included because `page-dewarp` (v0.2.0) depends
on `matplotlib` (v3.10.7) which depends on `pillow`
Error: Process completed with exit code 1.
What are your OS, Python and Pillow versions?
- OS: Ubuntu
- Python: 3.15.0a2
- Pillow: 12.0
Metadata
Metadata
Assignees
Labels
No labels