Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation failed on Windows with 32-bit Python #7341

Closed
alexsilva opened this issue Aug 14, 2023 · 5 comments
Closed

Installation failed on Windows with 32-bit Python #7341

alexsilva opened this issue Aug 14, 2023 · 5 comments
Labels

Comments

@alexsilva
Copy link

What did you do?

Tried to update to version 10.0.0
python -m pip install Pillow==10.0.0 --force-reinstall

What did you expect to happen?

That the installation proceeded without failures

What actually happened?

The sequence of failures described below.
Version 9.5.0 installs normally.

What are your OS, Python and Pillow versions?

  • OS: Windows 10
  • Python: 3.9
  • Pillow: 10.0.0
python -m pip install Pillow==10.0.0 --force-reinstall
Collecting Pillow==10.0.0
  Using cached Pillow-10.0.0.tar.gz (50.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: Pillow
  Building wheel for Pillow (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for Pillow (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [198 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win32-cpython-39
      creating build\lib.win32-cpython-39\PIL
      copying src\PIL\BdfFontFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\BlpImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\BmpImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\BufrStubImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ContainerIO.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\CurImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\DcxImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\DdsImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\EpsImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ExifTags.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\features.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\FitsImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\FliImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\FontFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\FpxImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\FtexImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\GbrImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\GdImageFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\GifImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\GimpGradientFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\GimpPaletteFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\GribStubImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\Hdf5StubImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\IcnsImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\IcoImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\Image.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageChops.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageCms.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageColor.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageDraw.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageDraw2.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageEnhance.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageFilter.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageFont.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageGrab.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageMath.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageMode.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageMorph.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageOps.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImagePalette.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImagePath.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageQt.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageSequence.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageShow.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageStat.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageTk.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageTransform.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImageWin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\ImtImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\IptcImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\Jpeg2KImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\JpegImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\JpegPresets.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\McIdasImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\MicImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\MpegImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\MpoImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\MspImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PaletteFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PalmImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PcdImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PcfFontFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PcxImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PdfImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PdfParser.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PixarImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PngImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PpmImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PsdImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PSDraw.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\PyAccess.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\QoiImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\SgiImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\SpiderImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\SunImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\TarIO.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\TgaImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\TiffImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\TiffTags.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\WalImageFile.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\WebPImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\WmfImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\XbmImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\XpmImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\XVThumbImagePlugin.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\_binary.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\_deprecate.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\_tkinter_finder.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\_util.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\_version.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\__init__.py -> build\lib.win32-cpython-39\PIL
      copying src\PIL\__main__.py -> build\lib.win32-cpython-39\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'
      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 previously-included files found matching '.appveyor.yml'
      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 matching '.git*' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      no previously-included directories found matching '.ci'
      adding license file 'LICENSE'
      writing manifest file 'src\Pillow.egg-info\SOURCES.txt'
      running build_ext


      The headers or library files could not be found for zlib,
      a required dependency when compiling Pillow from source.

      Please see the install instructions at:
         https://pillow.readthedocs.io/en/latest/installation.html

      Traceback (most recent call last):
        File "<string>", line 988, in <module>
        File "...\overlay\Lib\site-packages\setuptools\__init__.py", line 107, in setup
          return distutils.core.setup(**attrs)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
          return run_commands(dist)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
          dist.run_commands()
        File "...\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "...\overlay\Lib\site-packages\setuptools\dist.py", line 1234, in run_command
          super().run_command(command)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "...\overlay\Lib\site-packages\wheel\bdist_wheel.py", line 349, in run
          self.run_command("build")
        File "...\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "...\overlay\Lib\site-packages\setuptools\dist.py", line 1234, in run_command
          super().run_command(command)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "...\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 131, in run
          self.run_command(cmd_name)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "...\overlay\Lib\site-packages\setuptools\dist.py", line 1234, in run_command
          super().run_command(command)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "...\overlay\Lib\site-packages\setuptools\command\build_ext.py", line 84, in run
          _build_ext.run(self)
        File "...\overlay\Lib\site-packages\setuptools\_distutils\command\build_ext.py", line 345, in run
          self.build_extensions()
        File "<string>", line 811, in build_extensions
      __main__.RequiredDependencyException: zlib

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "...\Python3\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "...\Python3\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "...\Python3\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
        File "...\Temp\pip-install-mcc4fjas\pillow_a7b5b847877c42b9b843ebefde7328cc\_custom_build\backend.py", line 53, in build_wheel
          return super().build_wheel(wheel_directory, config_settings, metadata_directory)
        File "...\overlay\Lib\site-packages\setuptools\build_meta.py", line 416, in build_wheel
          return self._build_with_temp_dir(['bdist_wheel'], '.whl',
        File "...\overlay\Lib\site-packages\setuptools\build_meta.py", line 401, in _build_with_temp_dir
          self.run_setup()
        File "...\Temp\pip-install-mcc4fjas\pillow_a7b5b847877c42b9b843ebefde7328cc\_custom_build\backend.py", line 47, in run_setup
          return super().run_setup(setup_script)
        File "...\overlay\Lib\site-packages\setuptools\build_meta.py", line 338, in run_setup
          exec(code, locals())
        File "<string>", line 1005, in <module>
      __main__.RequiredDependencyException:

      The headers or library files could not be found for zlib,
      a required dependency when compiling Pillow from source.

      Please see the install instructions at:
         https://pillow.readthedocs.io/en/latest/installation.html


      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for Pillow
Failed to build Pillow
ERROR: Could not build wheels for Pillow, which is required to install pyproject.toml-based projects

[notice] A new release of pip is available: 23.1.1 -> 23.2.1
[notice] To update, run: ...\Python3\python.exe -m pip install --upgrade pip
@hugovk
Copy link
Member

hugovk commented Aug 14, 2023

I see you're using win32. As mentioned in the release notes, pre-built binary wheels are no longer provided for 32 bit.

Re: #6941

@radarhere radarhere changed the title Installation failed on windows. Installation failed on Windows Aug 14, 2023
@radarhere
Copy link
Member

radarhere commented Aug 14, 2023

Because we are no longer providing 32-bit wheels, pip is attempting to build Pillow from source on your machine (As has happened for other 32-bit Windows users), and failing to find zlib, one of our required dependencies. For more information on how to build from source, see https://pillow.readthedocs.io/en/stable/installation.html#building-from-source

@radarhere radarhere changed the title Installation failed on Windows Installation failed on Windows with 32-bit Python Aug 14, 2023
@cmcqueen
Copy link

The "Installation" documentation still says

We provide Pillow binaries for Windows compiled for the matrix of supported Pythons in both 32 and 64-bit versions in the wheel format.

I was confused by this. Could you please update the documentation to avoid confusion.

@radarhere
Copy link
Member

Sure. I've created #7347

@radarhere
Copy link
Member

Pillow 10.2.0 has been released, now with Windows 32-bit wheels once again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants