How to install Pillow on termux?
Asked Answered
T

2

10

I am using Termux for quite a while now and would like to install "Pillow" library on it. Whenever I try to install Pillow using "pip" it shows me the below errors.
At first I thought I need to upgrade pip, but it did not help. I have also cleared caches, to no avail.

Error

$ python3 -m pip install Pillow==7.2.0          Collecting Pillow==7.2.0                          Using cached Pillow-7.2.0.tar.gz (39.1 MB)    Using legacy setup.py install for Pillow, since package 'wheel' is not installed.               Installing collected packages: Pillow               Running setup.py install for Pillow ... error                                                   ERROR: Command errored out with exit status 1:                                                   command: /data/data/com.termux/files/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/Pillow/setup.py'"'"'; __file__='"'"'/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/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 /data/data/com.termux/files/usr/tmp/pip-record-rstq_guv/install-record.txt --single-version-externally-managed --compile --install-headers /data/data/com.termux/files/usr/include/python3.8/Pillow                   cwd: /data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/Pillow/                      Complete output (172 lines):                    running install                                 running build
    running build_py
    creating build
    creating build/lib.linux-aarch64-3.8
    creating build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/BdfFontFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/BlpImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/BmpImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ContainerIO.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/CurImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/DcxImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/DdsImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/EpsImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ExifTags.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/FitsStubImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/FliImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/FontFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/FpxImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/FtexImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/GbrImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/GdImageFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/GifImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/GimpGradientFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/GimpPaletteFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/IcoImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/Image.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageChops.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageCms.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageColor.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageDraw.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageDraw2.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageEnhance.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageFilter.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageFont.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageGrab.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageMath.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageMode.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageMorph.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageOps.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImagePalette.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImagePath.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageQt.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageSequence.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageShow.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageStat.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageTk.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageTransform.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImageWin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/ImtImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/IptcImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/JpegImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/JpegPresets.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/MicImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/MpegImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/MpoImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/MspImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PSDraw.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PaletteFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PalmImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PcdImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PcfFontFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PcxImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PdfImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PdfParser.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PixarImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PngImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PpmImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PsdImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/PyAccess.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/SgiImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/SunImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/TarIO.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/TgaImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/TiffImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/TiffTags.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/WalImageFile.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/WebPImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/WmfImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/XbmImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/XpmImagePlugin.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/__init__.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/__main__.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/_binary.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/_tkinter_finder.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/_util.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/_version.py -> build/lib.linux-aarch64-3.8/PIL
    copying src/PIL/features.py -> build/lib.linux-aarch64-3.8/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 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 "/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/Pillow/setup.py", line 864, in <module>
        setup(
      File "/data/data/com.termux/files/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/data/data/com.termux/files/usr/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/data/data/com.termux/files/usr/lib/python3.8/distutils/command/build_ext.py", line 340, in run
        self.build_extensions()
      File "/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/Pillow/setup.py", line 694, in build_extensions
        raise RequiredDependencyException(f)
    __main__.RequiredDependencyException: jpeg

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/Pillow/setup.py", line 918, 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


    ----------------------------------------
ERROR: Command errored out with exit status 1: /data/data/com.termux/files/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/Pillow/setup.py'"'"'; __file__='"'"'/data/data/com.termux/files/usr/tmp/pip-install-48geu0sg/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 /data/data/com.termux/files/usr/tmp/pip-record-rstq_guv/install-record.txt --single-version-externally-managed --compile --install-headers /data/data/com.termux/files/usr/include/python3.8/Pillow Check the logs for full command output.

How do I install Pillow on termux?

Thermosetting answered 17/7, 2020 at 14:26 Comment(6)
It tells you what the problem is, and where to get more information: "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 pillow.readthedocs.io/en/latest/installation.html"Nebraska
@Nebraska bro i checked internet and all other things but can't got any help... I think this is asking for zlib that is currently unavailable in termux so how to solve it ??Thermosetting
zlib is for png, libjpeg is for jpeg. Both are required by default, but you can force Pillow to not require either or both, as explained in the linked installation instructions.Nebraska
The linked instructions say that if you can't install libjpeg, you'll need to build Pillow with the --disable-jpeg flag.Nebraska
On the other hand, if you DO have a library installed and pip can't find it, it might just be looking in the wrong place for your header files: github.com/python-pillow/Pillow/issues/1957 (This was the first hit when Googling "pillow termux".)Nebraska
wiki.termux.com/wiki/Image_Editors#PythonAnyways
I
25

First download the wheel module from pypi

pip install wheel

Then install the libjpeg-turbo package.

pkg install libjpeg-turbo

And now install Pillow with:

LDFLAGS="-L/system/lib/" CFLAGS="-I/data/data/com.termux/files/usr/include/" pip install Pillow

Note: If you are using an aarch64 device, set the LDFLAGS flag to "-L/system/lib64/"

related: Install Pillow in termux - Termux Wiki

Incertitude answered 26/7, 2020 at 21:33 Comment(6)
Wow... Thank you so much.Dyscrasia
Hi. Which version of Pillow have you installed? When I'm trying to install it I'm getting errors like: ld.lld: error: /system/lib/libdl.so is incompatible with aarch64linux; ld.lld: error: /system/lib/libc.so is incompatible with aarch64linux; ld.lld: error: /system/lib/libdl.so is incompatible with aarch64linux; `Lappet
Same error as @Lappet any solution ?Epeirogeny
@Epeirogeny try LDFLAGS="-L/system/lib64/" CFLAGS="-I/data/data/com.termux/files/usr/include/" pip install PillowLappet
Yes, it works on aarch64 based devices.Lappet
After doing the first two steps, it worked, no need for the third step. Installed Pillow regularly after that (from requirements.txt file).Contractive
B
0
pkg install -y python ndk-sysroot clang make \ libjpeg-turbo
Blackmarket answered 21/2, 2023 at 20:40 Comment(1)
Welcome to Stack Overflow! While this code may solve the question, including an explanation of how and why this solves the problem would really help to improve the quality of your post, and probably result in more up-votes. Remember that you are answering the question for readers in the future, not just the person asking now. Please edit your answer to add explanations and give an indication of what limitations and assumptions apply.Tenement

© 2022 - 2024 — McMap. All rights reserved.