No such file or directory "limits.h" when installing Pillow on Alpine Linux

PythonLinuxPython 2.7Alpine

Python Problem Overview


I'm running alpine-linux on a Raspberry Pi 2. I'm trying to install Pillow via this command:

pip install pillow

This is the output from the command:

Installing collected packages: pillow
Running setup.py install for pillow
	Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-gNq0WA/pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-nDKwei-record/install-record.txt --single-version-externally-managed --compile:
	running install
	running build
	running build_py
	creating build
	creating build/lib.linux-armv7l-2.7
	creating build/lib.linux-armv7l-2.7/PIL
	copying PIL/XVThumbImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/XpmImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/XbmImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/WmfImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/WebPImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/WalImageFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/TiffTags.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/TiffImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/TgaImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/TarIO.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/SunImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/SpiderImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/SgiImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PyAccess.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PSDraw.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PsdImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PpmImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PngImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PixarImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PdfImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PcxImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PcfFontFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PcdImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PalmImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/PaletteFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/OleFileIO.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/MspImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/MpoImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/MpegImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/MicImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/McIdasImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/JpegPresets.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/JpegImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/Jpeg2KImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/IptcImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImtImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageWin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageTransform.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageTk.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageStat.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageShow.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageSequence.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageQt.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImagePath.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImagePalette.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageOps.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageMorph.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageMode.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageMath.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageGrab.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageFont.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageFilter.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageFileIO.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageEnhance.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageDraw2.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageDraw.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageColor.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageCms.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ImageChops.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/Image.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/IcoImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/IcnsImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/Hdf5StubImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/GribStubImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/GimpPaletteFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/GimpGradientFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/GifImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/GdImageFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/GbrImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/FpxImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/FontFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/FliImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/FitsStubImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ExifTags.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/EpsImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/DcxImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/CurImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/ContainerIO.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/BufrStubImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/BmpImagePlugin.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/BdfFontFile.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/_util.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/_binary.py -> build/lib.linux-armv7l-2.7/PIL
	copying PIL/__init__.py -> build/lib.linux-armv7l-2.7/PIL
	running egg_info
	writing Pillow.egg-info/PKG-INFO
	writing top-level names to Pillow.egg-info/top_level.txt
	writing dependency_links to Pillow.egg-info/dependency_links.txt
	warning: manifest_maker: standard file '-c' not found
	
	reading manifest file 'Pillow.egg-info/SOURCES.txt'
	reading manifest template 'MANIFEST.in'
	warning: no files found matching 'LICENSE' under directory 'docs'
	writing manifest file 'Pillow.egg-info/SOURCES.txt'
	copying PIL/OleFileIO-README.md -> build/lib.linux-armv7l-2.7/PIL
	running build_ext
	building 'PIL._imaging' extension
	creating build/temp.linux-armv7l-2.7/libImaging
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c _imaging.c -o build/temp.linux-armv7l-2.7/_imaging.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c outline.c -o build/temp.linux-armv7l-2.7/outline.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/Bands.c -o build/temp.linux-armv7l-2.7/libImaging/Bands.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/ConvertYCbCr.c -o build/temp.linux-armv7l-2.7/libImaging/ConvertYCbCr.o
	In file included from _imaging.c:76:0:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from outline.c:20:0:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/ConvertYCbCr.c:15:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/Bands.c:19:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/Draw.c -o build/temp.linux-armv7l-2.7/libImaging/Draw.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/Filter.c -o build/temp.linux-armv7l-2.7/libImaging/Filter.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/GifEncode.c -o build/temp.linux-armv7l-2.7/libImaging/GifEncode.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/LzwDecode.c -o build/temp.linux-armv7l-2.7/libImaging/LzwDecode.o
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/Draw.c:35:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/Filter.c:27:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/GifEncode.c:20:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/LzwDecode.c:31:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/Offset.c -o build/temp.linux-armv7l-2.7/libImaging/Offset.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/Quant.c -o build/temp.linux-armv7l-2.7/libImaging/Quant.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/PcxDecode.c -o build/temp.linux-armv7l-2.7/libImaging/PcxDecode.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/RawEncode.c -o build/temp.linux-armv7l-2.7/libImaging/RawEncode.o
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/Offset.c:18:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/Quant.c:21:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/PcxDecode.c:17:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/RawEncode.c:21:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/UnpackYCC.c -o build/temp.linux-armv7l-2.7/libImaging/UnpackYCC.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/ZipEncode.c -o build/temp.linux-armv7l-2.7/libImaging/ZipEncode.o
	gcc -fno-strict-aliasing -Os -fomit-frame-pointer -DNDEBUG -Os -fomit-frame-pointer -fPIC -DHAVE_LIBJPEG -I/tmp/pip-build-gNq0WA/pillow/libImaging -I/usr/include -I/usr/include/python2.7 -c libImaging/BoxBlur.c -o build/temp.linux-armv7l-2.7/libImaging/BoxBlur.o
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/UnpackYCC.c:17:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/ImPlatform.h:10:0,
					from libImaging/Imaging.h:14,
					from libImaging/ZipEncode.c:18:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	In file included from libImaging/BoxBlur.c:1:0:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.
	Building using 4 processes
	gcc -shared -Wl,--as-needed build/temp.linux-armv7l-2.7/_imaging.o build/temp.linux-armv7l-2.7/decode.o build/temp.linux-armv7l-2.7/encode.o build/temp.linux-armv7l-2.7/map.o build/temp.linux-armv7l-2.7/display.o build/temp.linux-armv7l-2.7/outline.o build/temp.linux-armv7l-2.7/path.o build/temp.linux-armv7l-2.7/libImaging/Access.o build/temp.linux-armv7l-2.7/libImaging/AlphaComposite.o build/temp.linux-armv7l-2.7/libImaging/Resample.o build/temp.linux-armv7l-2.7/libImaging/Bands.o build/temp.linux-armv7l-2.7/libImaging/BitDecode.o build/temp.linux-armv7l-2.7/libImaging/Blend.o build/temp.linux-armv7l-2.7/libImaging/Chops.o build/temp.linux-armv7l-2.7/libImaging/Convert.o build/temp.linux-armv7l-2.7/libImaging/ConvertYCbCr.o build/temp.linux-armv7l-2.7/libImaging/Copy.o build/temp.linux-armv7l-2.7/libImaging/Crc32.o build/temp.linux-armv7l-2.7/libImaging/Crop.o build/temp.linux-armv7l-2.7/libImaging/Dib.o build/temp.linux-armv7l-2.7/libImaging/Draw.o build/temp.linux-armv7l-2.7/libImaging/Effects.o build/temp.linux-armv7l-2.7/libImaging/EpsEncode.o build/temp.linux-armv7l-2.7/libImaging/File.o build/temp.linux-armv7l-2.7/libImaging/Fill.o build/temp.linux-armv7l-2.7/libImaging/Filter.o build/temp.linux-armv7l-2.7/libImaging/FliDecode.o build/temp.linux-armv7l-2.7/libImaging/Geometry.o build/temp.linux-armv7l-2.7/libImaging/GetBBox.o build/temp.linux-armv7l-2.7/libImaging/GifDecode.o build/temp.linux-armv7l-2.7/libImaging/GifEncode.o build/temp.linux-armv7l-2.7/libImaging/HexDecode.o build/temp.linux-armv7l-2.7/libImaging/Histo.o build/temp.linux-armv7l-2.7/libImaging/JpegDecode.o build/temp.linux-armv7l-2.7/libImaging/JpegEncode.o build/temp.linux-armv7l-2.7/libImaging/LzwDecode.o build/temp.linux-armv7l-2.7/libImaging/Matrix.o build/temp.linux-armv7l-2.7/libImaging/ModeFilter.o build/temp.linux-armv7l-2.7/libImaging/MspDecode.o build/temp.linux-armv7l-2.7/libImaging/Negative.o build/temp.linux-armv7l-2.7/libImaging/Offset.o build/temp.linux-armv7l-2.7/libImaging/Pack.o build/temp.linux-armv7l-2.7/libImaging/PackDecode.o build/temp.linux-armv7l-2.7/libImaging/Palette.o build/temp.linux-armv7l-2.7/libImaging/Paste.o build/temp.linux-armv7l-2.7/libImaging/Quant.o build/temp.linux-armv7l-2.7/libImaging/QuantOctree.o build/temp.linux-armv7l-2.7/libImaging/QuantHash.o build/temp.linux-armv7l-2.7/libImaging/QuantHeap.o build/temp.linux-armv7l-2.7/libImaging/PcdDecode.o build/temp.linux-armv7l-2.7/libImaging/PcxDecode.o build/temp.linux-armv7l-2.7/libImaging/PcxEncode.o build/temp.linux-armv7l-2.7/libImaging/Point.o build/temp.linux-armv7l-2.7/libImaging/RankFilter.o build/temp.linux-armv7l-2.7/libImaging/RawDecode.o build/temp.linux-armv7l-2.7/libImaging/RawEncode.o build/temp.linux-armv7l-2.7/libImaging/Storage.o build/temp.linux-armv7l-2.7/libImaging/SunRleDecode.o build/temp.linux-armv7l-2.7/libImaging/TgaRleDecode.o build/temp.linux-armv7l-2.7/libImaging/Unpack.o build/temp.linux-armv7l-2.7/libImaging/UnpackYCC.o build/temp.linux-armv7l-2.7/libImaging/UnsharpMask.o build/temp.linux-armv7l-2.7/libImaging/XbmDecode.o build/temp.linux-armv7l-2.7/libImaging/XbmEncode.o build/temp.linux-armv7l-2.7/libImaging/ZipDecode.o build/temp.linux-armv7l-2.7/libImaging/ZipEncode.o build/temp.linux-armv7l-2.7/libImaging/TiffDecode.o build/temp.linux-armv7l-2.7/libImaging/Incremental.o build/temp.linux-armv7l-2.7/libImaging/Jpeg2KDecode.o build/temp.linux-armv7l-2.7/libImaging/Jpeg2KEncode.o build/temp.linux-armv7l-2.7/libImaging/BoxBlur.o -L/usr/lib -L/usr/local/lib -L/usr/lib -ljpeg -lpython2.7 -o build/lib.linux-armv7l-2.7/PIL/_imaging.so
	gcc: error: build/temp.linux-armv7l-2.7/_imaging.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/decode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/encode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/map.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/display.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/outline.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/path.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Access.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/AlphaComposite.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Resample.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Bands.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/BitDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Blend.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Chops.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Convert.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/ConvertYCbCr.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Copy.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Crc32.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Crop.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Dib.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Draw.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Effects.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/EpsEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/File.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Fill.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Filter.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/FliDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Geometry.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/GetBBox.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/GifDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/GifEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/HexDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Histo.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/JpegDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/JpegEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/LzwDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Matrix.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/ModeFilter.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/MspDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Negative.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Offset.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Pack.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/PackDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Palette.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Paste.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Quant.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/QuantOctree.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/QuantHash.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/QuantHeap.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/PcdDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/PcxDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/PcxEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Point.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/RankFilter.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/RawDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/RawEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Storage.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/SunRleDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/TgaRleDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Unpack.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/UnpackYCC.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/UnsharpMask.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/XbmDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/XbmEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/ZipDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/ZipEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/TiffDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Incremental.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Jpeg2KDecode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/Jpeg2KEncode.o: No such file or directory
	gcc: error: build/temp.linux-armv7l-2.7/libImaging/BoxBlur.o: No such file or directory
	error: command 'gcc' failed with exit status 1
	
	----------------------------------------
Command "/usr/bin/python -c "import setup tools, tokenize;__file__='/tmp/pip-build-gNq0WA/pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-nDKwei-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-gNq0WA/pillow

I think this is probably the relevant section:

In file included from libImaging/BoxBlur.c:1:0:
	/usr/include/python2.7/Python.h:19:20: fatal error: limits.h: No such file or directory
	#include <limits.h>
						^
	compilation terminated.

My research shows it's probably something with the header files. I have installed these:

Python Solutions


Solution 1 - Python

Alpine Linux uses musl libc. You probably need to install musl-dev.

Solution 2 - Python

@zakaria answer is correct, but if you stumble upon

fatal error: linux/limits.h: No such file or directory

then you need the package linux-headers (notice the prefix linux before limits.h

apk add linux-headers

Solution 3 - Python

limits.h is located in libc-dev:

apk add libc-dev

Solution 4 - Python

I had a very similar problem with installing the Python library regex in Docker using the python:3.6-alpine image, for Alpine Linux >= 3.3.

pip install regex

I had to add gcc and musl-dev packages:

apk --no-cache add gcc musl-dev

Solution 5 - Python

I've found some python packages fail to install via pip install but work if you install the associated alpine linux package. For example pip install uwsgi fails complaining about limits.h, but apk add uwsgi-python works fine. Suggest trying apk add py-pillow instead of pip install pillow.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionubermaView Question on Stackoverflow
Solution 1 - PythonZakariaView Answer on Stackoverflow
Solution 2 - PythonRiccardo GalliView Answer on Stackoverflow
Solution 3 - PythonAlexandreView Answer on Stackoverflow
Solution 4 - PythonmalmedView Answer on Stackoverflow
Solution 5 - PythonrcurrieView Answer on Stackoverflow