Pip can't install pillow

Question:

When trying to install pillow using pip it produces this error.
I have tried reinstalling setup tools and it has had no effect
I am running on a pi zero with Diet Pi installed

pip install pillow

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
    Collecting pillow
      Using cached 
    https://files.pythonhosted.org/packages/3c/7e/443be24431324bd34d2                                                                                                                                                             
    2dd9d11cc845d995bcd3b500676bcf23142756975/Pillow-5.4.1.tar.gz
Installing collected packages: pillow
  Running setup.py install for pillow ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, token                                                                                                                                                             ize;__file__='/tmp/pip-install-Q2fwNi/pillow/setup.py';f=getattr(tokenize, 'open                                                                                                                                                             ', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(co                                                                                                                                                             de, __file__, 'exec'))" install --record /tmp/pip-record-uWuhA1/install-record.t                                                                                                                                                             xt --single-version-externally-managed --compile:
    Single threaded build, not installing mp_compile:1 processes
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-armv6l-2.7
    creating build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FtexImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PpmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageFont.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/JpegImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PsdImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/SgiImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/Image.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_binary.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PyAccess.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageSequence.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/DdsImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/OleFileIO.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/XpmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageTransform.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BmpImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImagePalette.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/IptcImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TiffImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GdImageFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_util.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/CurImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TiffTags.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FliImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/WebPImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageGrab.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/WmfImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageEnhance.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageShow.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PdfImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageOps.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GbrImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageTk.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BlpImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PcfFontFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/WalImageFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageMorph.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TgaImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/EpsImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_tkinter_finder.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/IcoImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageWin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GimpGradientFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageDraw.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/features.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/JpegPresets.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/__init__.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/DcxImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImagePath.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageDraw2.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageFilter.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PcdImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PSDraw.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageChops.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FpxImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageCms.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ExifTags.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PdfParser.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FontFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PaletteFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageMath.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageQt.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PalmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GifImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImtImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/_version.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MicImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MspImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ContainerIO.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageColor.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GimpPaletteFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PixarImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageStat.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/BdfFontFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MpegImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/FitsStubImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/TarIO.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageFile.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/SunImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PcxImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/XbmImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/PngImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/ImageMode.py -> build/lib.linux-armv6l-2.7/PIL
    copying src/PIL/MpoImagePlugin.py -> build/lib.linux-armv6l-2.7/PIL
    running egg_info
    writing src/Pillow.egg-info/PKG-INFO
    writing top-level names to src/Pillow.egg-info/top_level.txt
    writing dependency_links to src/Pillow.egg-info/dependency_links.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'
    no previously-included directories found matching 'docs/_static'
    warning: no previously-included files found matching '.appveyor.yml'
    warning: no previously-included files found matching '.coveragerc'
    warning: no previously-included files found matching '.codecov.yml'
    warning: no previously-included files found matching '.editorconfig'
    warning: no previously-included files found matching '.landscape.yaml'
    warning: no previously-included files found matching '.readthedocs.yml'
    warning: no previously-included files found matching '.travis'
    warning: no previously-included files found matching '.travis/*'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files matching '.git*' found anywhere in dis                                                                                                                                                             tribution
    warning: no previously-included files matching '*.pyc' found anywhere in dis                                                                                                                                                             tribution
    warning: no previously-included files matching '*.so' found anywhere in dist                                                                                                                                                             ribution
    writing manifest file 'src/Pillow.egg-info/SOURCES.txt'
    running build_ext


    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.html

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-Q2fwNi/pillow/setup.py", line 812, in <module>
        raise RequiredDependencyException(msg)
    __main__.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.html

    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-xZLepb/pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-1_XTeb/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-xZLepb/pillow/
Asked By: Tris

||

Answers:

try with this :

python3 -m pip install Pillow

if it won’t work check this out :

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external

Be careful, on 64 bit platforms, the linked path needs to be different,

/usr/lib/x86_64-linux-gnu/libfreetype.so .

For a more architecture independent solution, create the links like

ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/

Also for Raspbian Stretch(Raspberry Pi) you can write:

sudo apt install python3-dev libjpeg8-dev libpng-dev libfreetype6-dev
Answered By: Freeman

I solved this by explicitly deleting the version numbering inside of the requirements.txt file
That way pip fetched the latest pillow version
so if forexample you had …

pillow==7.0.2

change it to ..

pillow

then save the file and rerun the pip install -r requirements.txt line and it shd work

Answered By: NMukama

I experienced this same issue. To solve the issue I simply upgraded pip with the python3 -m pip install --upgrade pip command.

Answered By: aleccmedina