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

Warning not obvious when installing on Windows for future Python version #4960

Closed
jimmyxp01 opened this issue Oct 10, 2020 · 7 comments
Closed
Labels
Installation Usually a problem with … Windows
Milestone

Comments

@jimmyxp01
Copy link

I'm trying to install pillow. But I'm getting this error. I didn't understand what to do. help me ,

What are your OS, Python and Pillow versions?

  • OS: Windows 10
  • Python: 3.9
  • Pillow: latest
Running setup.py install for Pillow ... error
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\Jitu\AppData\Local\Programs\Python\Python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Jitu\\AppData\\Local\\Temp\\pip-install-q4hs2n1b\\pillow\\setup.py'"'"'; __file__='"'"'C:\\Users\\Jitu\\AppData\\Local\\Temp\\pip-install-q4hs2n1b\\pillow\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Jitu\AppData\Local\Temp\pip-record-xvh0leeq\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Jitu\AppData\Local\Programs\Python\Python39\Include\Pillow'
         cwd: C:\Users\Jitu\AppData\Local\Temp\pip-install-q4hs2n1b\pillow\
    Complete output (174 lines):
    C:\Users\Jitu\AppData\Local\Temp\pip-install-q4hs2n1b\pillow\setup.py:42: RuntimeWarning: Pillow 7.2.0 does not support Python 3.9 and does not provide prebuilt Windows binaries. We do not recommend building from source on Windows.
      warnings.warn(
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.9
    creating build\lib.win-amd64-3.9\PIL
    copying src\PIL\BdfFontFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\BlpImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\BmpImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\BufrStubImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ContainerIO.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\CurImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\DcxImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\DdsImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\EpsImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ExifTags.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\features.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\FitsStubImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\FliImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\FontFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\FpxImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\FtexImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\GbrImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\GdImageFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\GifImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\GimpGradientFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\GimpPaletteFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\GribStubImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\Hdf5StubImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\IcnsImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\IcoImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\Image.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageChops.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageCms.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageColor.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageDraw.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageDraw2.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageEnhance.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageFilter.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageFont.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageGrab.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageMath.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageMode.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageMorph.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageOps.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImagePalette.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImagePath.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageQt.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageSequence.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageShow.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageStat.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageTk.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageTransform.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImageWin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\ImtImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\IptcImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\Jpeg2KImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\JpegImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\JpegPresets.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\McIdasImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\MicImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\MpegImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\MpoImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\MspImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PaletteFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PalmImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PcdImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PcfFontFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PcxImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PdfImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PdfParser.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PixarImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PngImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PpmImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PsdImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PSDraw.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\PyAccess.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\SgiImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\SpiderImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\SunImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\TarIO.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\TgaImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\TiffImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\TiffTags.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\WalImageFile.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\WebPImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\WmfImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\XbmImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\XpmImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\XVThumbImagePlugin.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\_binary.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\_tkinter_finder.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\_util.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\_version.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\__init__.py -> build\lib.win-amd64-3.9\PIL
    copying src\PIL\__main__.py -> build\lib.win-amd64-3.9\PIL
    running egg_info
    writing src\Pillow.egg-info\PKG-INFO
    writing dependency_links to src\Pillow.egg-info\dependency_links.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 previously-included files found matching '.appveyor.yml'
    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 matching '.git*' found anywhere in distribution
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    no previously-included directories found matching '.ci'
    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 "C:\Users\Jitu\AppData\Local\Temp\pip-install-q4hs2n1b\pillow\setup.py", line 864, in <module>
        setup(
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\site-packages\setuptools\__init__.py", line 165, in setup
        return distutils.core.setup(**attrs)
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\site-packages\setuptools\command\install.py", line 61, in run
        return orig.install.run(self)
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\command\install.py", line 546, in run
        self.run_command('build')
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\command\build.py", line 135, in run
        self.run_command(cmd_name)
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\dist.py", line 985, in run_command
        cmd_obj.run()
      File "C:\Users\Jitu\AppData\Local\Programs\Python\Python39\lib\distutils\command\build_ext.py", line 340, in run
        self.build_extensions()
      File "C:\Users\Jitu\AppData\Local\Temp\pip-install-q4hs2n1b\pillow\setup.py", line 694, in build_extensions
        raise RequiredDependencyException(f)
    __main__.RequiredDependencyException: zlib

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\Jitu\AppData\Local\Temp\pip-install-q4hs2n1b\pillow\setup.py", line 918, in <module>
        raise RequiredDependencyException(msg)
    __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


    ----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\Jitu\AppData\Local\Programs\Python\Python39\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Jitu\\AppData\\Local\\Temp\\pip-install-q4hs2n1b\\pillow\\setup.py'"'"'; __file__='"'"'C:\\Users\\Jitu\\AppData\\Local\\Temp\\pip-install-q4hs2n1b\\pillow\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Jitu\AppData\Local\Temp\pip-record-xvh0leeq\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Jitu\AppData\Local\Programs\Python\Python39\Include\Pillow' Check the logs for full command output.
@radarhere
Copy link
Member

Pillow has not yet been released for Python 3.9. A Python 3.9 wheel will be created as part of the Pillow 8.0.0 release on October 15, so if you wait a week, you may find this easier.

If you would like to do this sooner than that - https://pillow.readthedocs.io/en/latest/installation.html#building-on-windows

If you wish to compile Pillow manually, you can use the build scripts in the winbuild directory used for CI testing and development. These scripts require Visual Studio 2017 or newer and NASM.

@radarhere radarhere added Installation Usually a problem with … Windows labels Oct 10, 2020
@hugovk
Copy link
Member

hugovk commented Oct 10, 2020

The reason is given on the first line of the complete output:

C:\Users\Jitu\AppData\Local\Temp\pip-install-q4hs2n1b\pillow\setup.py:42: RuntimeWarning: Pillow 7.2.0 does not support Python 3.9 and does not provide prebuilt Windows binaries. We do not recommend building from source on Windows.

But it's lost in the swamp of other output.

It would be good to make it more obvious.

Possibly even an early hard fail? If so, we'd still need to allow builds (with a warning?) for CIs and others who are able to build early on Windows. Maybe an env var? Do any other projects do something like this?

No rush for this, it would mainly be useful in October 2021 for Python 3.10.

@radarhere
Copy link
Member

radarhere commented Oct 11, 2020

One option could be using the atexit module to move the warning to the end of the output -

diff --git a/setup.py b/setup.py
index 2f7c85e9..76e32acf 100755
--- a/setup.py
+++ b/setup.py
@@ -38,13 +38,14 @@ ZLIB_ROOT = None
 
 
 if sys.platform == "win32" and sys.version_info >= (3, 10):
-    warnings.warn(
+    import atexit
+    atexit.register(lambda: warnings.warn(
         f"Pillow {PILLOW_VERSION} does not support Python "
         f"{sys.version_info.major}.{sys.version_info.minor} and does not provide "
         "prebuilt Windows binaries. We do not recommend building from source on "
         "Windows.",
         RuntimeWarning,
-    )
+    ))
running install
running bdist_egg
running egg_info
writing src/Pillow.egg-info/PKG-INFO
writing dependency_links to src/Pillow.egg-info/dependency_links.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 previously-included files found matching '.appveyor.yml'
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 matching '.git*' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
no previously-included directories found matching '.ci'
writing manifest file 'src/Pillow.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.15-x86_64/egg
running install_lib
running build_py
running build_ext


The headers or library files could not be found for zlib,
which was requested by the option flag --enable-zlib

Traceback (most recent call last):
  File "setup.py", line 893, in <module>
    zip_safe=not (debug_build() or PLATFORM_MINGW),
  File "Library/Python/3.6/lib/python/site-packages/setuptools/__init__.py", line 161, in setup
    return distutils.core.setup(**attrs)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "Library/Python/3.6/lib/python/site-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "Library/Python/3.6/lib/python/site-packages/setuptools/command/install.py", line 109, in do_egg_install
    self.run_command('bdist_egg')
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "Library/Python/3.6/lib/python/site-packages/setuptools/command/bdist_egg.py", line 173, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "Library/Python/3.6/lib/python/site-packages/setuptools/command/bdist_egg.py", line 159, in call_command
    self.run_command(cmdname)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "Library/Python/3.6/lib/python/site-packages/setuptools/command/install_lib.py", line 11, in run
    self.build()
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/command/install_lib.py", line 107, in build
    self.run_command('build_ext')
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "Library/Python/3.6/lib/python/site-packages/setuptools/command/build_ext.py", line 87, in run
    _build_ext.run(self)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
    _build_ext.build_ext.run(self)
  File "Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "setup.py", line 691, in build_extensions
    raise DependencyException("zlib")
__main__.DependencyException: zlib

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "setup.py", line 915, in <module>
    raise DependencyException(msg)
__main__.DependencyException: 

The headers or library files could not be found for zlib,
which was requested by the option flag --enable-zlib


setup.py:47: RuntimeWarning: Pillow 8.0.0.dev0 does not support Python 3.6 and does not provide prebuilt Windows binaries. We do not recommend building from source on Windows.
  RuntimeWarning,

@radarhere
Copy link
Member

Someone has posted a Pillow 7.2.0 Python 3.9 wheel in another issue - #4953 (comment)

@hugovk
Copy link
Member

hugovk commented Oct 12, 2020

They're also up at "Unofficial Windows Binaries for Python Extension Packages":

@hugovk hugovk changed the title pillow pip install error Installing on Windows for Python 3.9 Oct 12, 2020
@hugovk hugovk added this to the 8.1.0 milestone Oct 14, 2020
@hugovk hugovk changed the title Installing on Windows for Python 3.9 Warning not obvious when installing on Windows for future Python version Oct 14, 2020
@jimmyxp01
Copy link
Author

IT's successfully install now

@hazho
Copy link

hazho commented Oct 28, 2020

I just installed it with #wagtail_cms (as its dependency) but didn't accept and gave me same error of wheel (above one)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Installation Usually a problem with … Windows
Projects
None yet
Development

No branches or pull requests

4 participants