ERROR: Could not build wheels for Pillow, which is required to install pyproject.toml-based projects

1.报错的场景:windows10 安装 python Pillow

2.使用的命令:pip install wheel Pillow

Collecting wheel
  Using cached wheel-0.42.0-py3-none-any.whl.metadata (2.2 kB)
Collecting Pillow
  Downloading Pillow-10.1.0.tar.gz (50.8 MB)
     ---------------------------------------- 50.8/50.8 MB 173.3 kB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Using cached wheel-0.42.0-py3-none-any.whl (65 kB)
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
  ╰─> [199 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win32-cpython-38
      creating build\lib.win32-cpython-38\PIL
      copying src\PIL\BdfFontFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\BlpImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\BmpImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\BufrStubImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ContainerIO.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\CurImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\DcxImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\DdsImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\EpsImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ExifTags.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\features.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\FitsImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\FliImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\FontFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\FpxImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\FtexImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\GbrImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\GdImageFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\GifImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\GimpGradientFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\GimpPaletteFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\GribStubImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\Hdf5StubImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\IcnsImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\IcoImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\Image.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageChops.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageCms.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageColor.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageDraw.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageDraw2.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageEnhance.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageFilter.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageFont.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageGrab.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageMath.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageMode.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageMorph.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageOps.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImagePalette.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImagePath.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageQt.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageSequence.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageShow.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageStat.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageTk.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageTransform.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImageWin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\ImtImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\IptcImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\Jpeg2KImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\JpegImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\JpegPresets.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\McIdasImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\MicImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\MpegImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\MpoImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\MspImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PaletteFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PalmImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PcdImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PcfFontFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PcxImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PdfImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PdfParser.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PixarImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PngImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PpmImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PsdImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PSDraw.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\PyAccess.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\QoiImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\SgiImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\SpiderImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\SunImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\TarIO.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\TgaImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\TiffImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\TiffTags.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\WalImageFile.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\WebPImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\WmfImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\XbmImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\XpmImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\XVThumbImagePlugin.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\_binary.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\_deprecate.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\_tkinter_finder.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\_util.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\_version.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\__init__.py -> build\lib.win32-cpython-38\PIL
      copying src\PIL\__main__.py -> build\lib.win32-cpython-38\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'
      no previously-included directories found matching 'wheels'
      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 "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
          return run_commands(dist)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
          dist.run_commands()
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\normal\Lib\site-packages\wheel\bdist_wheel.py", line 368, in run
          self.run_command("build")
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 131, in run
          self.run_command(cmd_name)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
          super().run_command(command)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
          cmd_obj.run()
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\command\build_ext.py", line 88, in run
          _build_ext.run(self)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\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 "c:\software\python3\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "c:\software\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 "c:\software\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 "C:\Users\18734\AppData\Local\Temp\pip-install-atnx1yhq\pillow_28057c2f61d54675aebf7f5b70c637c8\_custom_build\backend.py", line 53, in build_wheel
          return super().build_wheel(wheel_directory, config_settings, metadata_directory)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\build_meta.py", line 404, in build_wheel
          return self._build_with_temp_dir(
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\build_meta.py", line 389, in _build_with_temp_dir
          self.run_setup()
        File "C:\Users\18734\AppData\Local\Temp\pip-install-atnx1yhq\pillow_28057c2f61d54675aebf7f5b70c637c8\_custom_build\backend.py", line 47, in run_setup
          return super().run_setup(setup_script)
        File "C:\Users\18734\AppData\Local\Temp\pip-build-env-h5olqr_w\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, 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

出现这个错

4.尝试解决

        方法一:pip install --upgrade pip setuptools  没解决掉

        方法二:安装 Visual Studio C++  2022没解决

 5.从github上找类似问题 

ERROR: Could not build wheels for pillow, which is required to install pyproject.toml-based projects · Issue #7454 · python-pillow/Pillow · GitHub

发现有人说这个可能是因为 Python 安装的是 32 位版本的

 

6.在自己的Pycharm中执行 

def print_max_size():
    print(sys.maxsize)

if __name__ == '__main__':

    print_max_size()

输出结果:2147483647 。果然是 32位的

7.在上面的报错日志中我们可以看到

 说明默认加载的是 Pillow-10.1.0.tar.gz,我们知道 tar.gz 这种包一般是在linux上安装的

以下是github上别人给的建议

Hi. I'm guessing that you're either on 32-bit Windows 10, or you're running 32-bit Python (to check that you're running 32-bit Python, you can try import sys;print(sys.maxsize) and see if it returns 2147483647).

As of Pillow 10.0.0, we stopped providing wheels for 32-bit Windows. Because it cannot find a wheel, pip is attempting to build Pillow from source on your machine, and failing to find zlib, one of our required dependencies. For more information on how to build from source, see Installation - Pillow (PIL Fork) 10.1.0 documentation

Alternatively, you can install Pillow 9.5.0, the last version with 32-bit Windows wheels, with pip install pillow==9.5.0. However, this is not recommended, as you would miss out on security fixes that we have provided since then.

翻译过来

你好我猜你要么在32位Windows 10上,要么正在运行32位Python(为了检查你是否在运行32位Python,你可以尝试导入sys;print(sys.maxsize),看看它是否返回2147483647)。

从Pillow 10.0.0起,我们停止为32位Windows提供轮子。因为找不到轮子,pip试图在您的机器上从源代码构建Pillow,但找不到zlib,这是我们需要的依赖项之一。有关如何从源代码构建的更多信息,请参阅https://pillow.readthedocs.io/en/stable/installation.html#building-来源

或者,您也可以安装Pillow 9.5.0,这是带有32位Windows轮子的最后一个版本,

pip install pillow==9.5.0。但是,不建议这样做,因为您会错过我们从那时起提供的安全修复程序。

所以我们只有两个方法解决这个问题

        1.将自己的Python改为 64 位的

        2.安装pip install pillow==9.5.0

其实不止9.5.0以下是Pillow版本和Python版本的支持情况,大家可以选择能满足自己需求的版本

我自选择的是安装64位的python 大家也可以试一下 pip install pillow==9.5.0

64位下载地址:https://www.python.org/downloads/windows/

 到这里我的问题解决掉了,如果有小伙伴采用pip install pillow==9.5.0,可以在评论区反馈结果

 

8.最后一种方法,如果你是要做开发,学习Pillow相关的东西不建议使用,建议使用上面提到的方法尝试解决,如果你只是临时测试点东西可以使用这种方法暂时解决一下

pip install --only-binary Pillow Pillow