Installation requires compilation from source
Closed this issue · 4 comments
OS: Ubuntu 20.10
Python version: 3.8.6
Steps to reproduce
$ git clone https://github.com/signalstickers/Adhesive.git
$ cd Adhesive/
$ python3.8 -m venv virtualenv
$ . virtualenv/bin/activate
(virtualenv) $ python3.8 -m pip install -Ur requirements.txt
Throws
Collecting toml~=0.10
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting Pillow-SIMD~=7.0
Using cached Pillow-SIMD-7.0.0.post3.tar.gz (630 kB)
Collecting telethon~=1.0
Using cached Telethon-1.19.0-py3-none-any.whl (501 kB)
Collecting sqlcipher3-binary~=0.4
Using cached sqlcipher3_binary-0.4.5-cp38-cp38-manylinux1_x86_64.whl (4.6 MB)
Collecting signalstickers-client~=3.0
Using cached signalstickers_client-3.0.0-py3-none-any.whl (16 kB)
Collecting httpx~=0.16
Using cached httpx-0.16.1-py3-none-any.whl (65 kB)
Collecting semaphore-bot~=0.9
Using cached semaphore_bot-0.9.1-py3-none-any.whl (35 kB)
Processing /home/maqp/.cache/pip/wheels/aa/ca/9c/8a3c00512585c703edc457db81c066b9609d76758c74f72ac6/pyaes-1.6.1-py3-none-any.whl
Collecting rsa
Using cached rsa-4.6-py3-none-any.whl (47 kB)
Collecting protobuf<4.0.0,>=3.13.0
Using cached protobuf-3.14.0-cp38-cp38-manylinux1_x86_64.whl (1.0 MB)
Collecting anyio<3.0.0,>=2.0.2
Using cached anyio-2.0.2-py3-none-any.whl (62 kB)
Collecting cryptography<4.0.0,>=3.1.1
Using cached cryptography-3.3.1-cp36-abi3-manylinux2010_x86_64.whl (2.6 MB)
Collecting sniffio
Using cached sniffio-1.2.0-py3-none-any.whl (10 kB)
Collecting httpcore==0.12.*
Using cached httpcore-0.12.2-py3-none-any.whl (54 kB)
Collecting rfc3986[idna2008]<2,>=1.3
Using cached rfc3986-1.4.0-py2.py3-none-any.whl (31 kB)
Collecting certifi
Using cached certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
Collecting python-dateutil==2.8.1
Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting attrs==18.2.0
Using cached attrs-18.2.0-py2.py3-none-any.whl (34 kB)
Collecting pyasn1>=0.1.3
Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
Collecting six>=1.9
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting idna>=2.8
Using cached idna-3.1-py3-none-any.whl (58 kB)
Collecting cffi>=1.12
Using cached cffi-1.14.4-cp38-cp38-manylinux1_x86_64.whl (411 kB)
Collecting h11==0.*
Using cached h11-0.12.0-py3-none-any.whl (54 kB)
Collecting pycparser
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Using legacy setup.py install for Pillow-SIMD, since package 'wheel' is not installed.
Installing collected packages: toml, Pillow-SIMD, pyaes, pyasn1, rsa, telethon, sqlcipher3-binary, six, protobuf, sniffio, idna, anyio, h11, httpcore, rfc3986, certifi, httpx, pycparser, cffi, cryptography, signalstickers-client, python-dateutil, attrs, semaphore-bot
Running setup.py install for Pillow-SIMD ... error
ERROR: Command errored out with exit status 1:
command: /home/maqp/Adhesive/virtualenv/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-n1wq4zlz/install-record.txt --single-version-externally-managed --compile --install-headers /home/maqp/Adhesive/virtualenv/include/site/python3.8/Pillow-SIMD
cwd: /tmp/pip-install-5cjz_zfi/Pillow-SIMD/
Complete output (176 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/PIL
copying src/PIL/XpmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PaletteFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PdfParser.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TiffImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/DcxImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageChops.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BmpImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PcfFontFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/IcoImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageShow.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/WebPImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_version.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FontFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PcxImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/EpsImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FtexImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageMath.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageQt.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PyAccess.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/SgiImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GimpPaletteFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageGrab.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BdfFontFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PalmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageCms.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PdfImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MspImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/DdsImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PsdImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/XbmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImagePalette.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageStat.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BlpImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TarIO.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/CurImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageFont.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MpegImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_tkinter_finder.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GbrImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PcdImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MpoImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageSequence.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageColor.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageDraw2.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FitsStubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/IptcImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PpmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/__init__.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImtImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageMorph.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageTk.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/features.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ContainerIO.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GimpGradientFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImagePath.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageWin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageFilter.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/SunImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PSDraw.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GdImageFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageTransform.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MicImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/WmfImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FliImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageOps.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageDraw.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FpxImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TgaImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ExifTags.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PngImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/Image.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GifImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_binary.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/__main__.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_util.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/JpegPresets.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/WalImageFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/JpegImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PixarImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageEnhance.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TiffTags.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageMode.py -> build/lib.linux-x86_64-3.8/PIL
running egg_info
writing src/Pillow_SIMD.egg-info/PKG-INFO
writing dependency_links to src/Pillow_SIMD.egg-info/dependency_links.txt
writing top-level names to src/Pillow_SIMD.egg-info/top_level.txt
reading manifest file 'src/Pillow_SIMD.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 directories found matching 'Tests'
no previously-included directories found matching 'Tests'
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 '.readthedocs.yml'
warning: no previously-included files found matching 'azure-pipelines.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 '.azure-pipelines'
no previously-included directories found matching '.travis'
writing manifest file 'src/Pillow_SIMD.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 "/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py", line 860, in <module>
setup(
File "/home/maqp/Adhesive/virtualenv/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/maqp/Adhesive/virtualenv/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/usr/lib/python3.8/distutils/command/install.py", line 589, in run
self.run_command('build')
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/distutils/command/build_ext.py", line 340, in run
self.build_extensions()
File "/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py", line 687, 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 "/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py", line 915, 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: /home/maqp/Adhesive/virtualenv/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-n1wq4zlz/install-record.txt --single-version-externally-managed --compile --install-headers /home/maqp/Adhesive/virtualenv/include/site/python3.8/Pillow-SIMD Check the logs for full command output.
Hi there! Thanks for your interest 👋
From the looks of it, Pillow-SIMD, an image processing dependency, failed to compile on your machine, due to missing libjpeg development libraries. As Pillow-SIMD is just a drop-in replacement for Pillow, you can try either:
- running
pip install Pillow
, then the rest of the dependencies, - or installing libjpeg, zlib, and
build-essential
first and then re-running thepip install -Ur requirements.txt
command.
Meanwhile, I'll leave this issue open as a reminder to make Pillow-SIMD optional and require Pillow by default. Let me know if you have any other questions.
Thanks! That helped me resolve the issue (although I got stuck in PIN verification. It would probably save some people trouble if they knew they can't use their own phone number temporarily if they have SVR PIN enabled).
Meanwhile, I'll leave this issue open as a reminder
OK I won't close it then but just to let you know I'm good :) Thanks for your hard work!
I managed to get my migration done without a personal sticker bot and I'm too exhausted from the migration and busy with other stuff to continue to look into this. I was under the impression the PIN warnings originated from the project's internal code so you'd be aware of the limitation, and could change it yourself without the need for a ticket. Anyway, massive thanks to everyone in this project, it saved an incredible amount of work!