I’ve had wfpiconsole running for a couple of years now without a problem. My system locked up and wouldn’t boot so I reimaged the SD card and tried to do a fresh install. When I try to install WFPiconsole, it errors out on:
[✗] Installing Kivy Python library
Error: Unable to install Kivy Python library
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting kivy==2.2.0 (from kivy[base]==2.2.0)
Downloading https://www.piwheels.org/simple/kivy/Kivy-2.2.0-cp311-cp311-linux_armv7l.whl (23.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.8/23.8 MB 1.1 MB/s eta 0:00:00
Collecting Kivy-Garden>=0.1.4 (from kivy==2.2.0->kivy[base]==2.2.0)
Downloading Kivy_Garden-0.1.5-py3-none-any.whl.metadata (159 bytes)
Collecting docutils (from kivy==2.2.0->kivy[base]==2.2.0)
Downloading https://www.piwheels.org/simple/docutils/docutils-0.21.2-py3-none-any.whl (587 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 508.3 kB/s eta 0:00:00
Collecting pygments (from kivy==2.2.0->kivy[base]==2.2.0)
Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB)
Collecting pillow (from kivy[base]==2.2.0)
Downloading pillow-11.2.1.tar.gz (47.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.0/47.0 MB 1.1 MB/s eta 0:00:00
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'done'
Collecting requests (from kivy[base]==2.2.0)
Downloading requests-2.32.4-py3-none-any.whl.metadata (4.9 kB)
Collecting charset_normalizer<4,>=2 (from requests->kivy[base]==2.2.0)
Downloading charset_normalizer-3.4.2-py3-none-any.whl.metadata (35 kB)
Collecting idna<4,>=2.5 (from requests->kivy[base]==2.2.0)
Downloading https://www.piwheels.org/simple/idna/idna-3.10-py3-none-any.whl (70 kB)
Collecting urllib3<3,>=1.21.1 (from requests->kivy[base]==2.2.0)
Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)
Requirement already satisfied: certifi>=2017.4.17 in ./wfpiconsole/venv/lib/python3.11/site-packages (from requests->kivy[base]==2.2.0) (2023.7.22)
Downloading Kivy_Garden-0.1.5-py3-none-any.whl (4.6 kB)
Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 1.3 MB/s eta 0:00:00
Downloading requests-2.32.4-py3-none-any.whl (64 kB)
Downloading charset_normalizer-3.4.2-py3-none-any.whl (52 kB)
Downloading urllib3-2.5.0-py3-none-any.whl (129 kB)
Building wheels for collected packages: pillow
Building wheel for pillow (pyproject.toml): started
Building wheel for pillow (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error
× Building wheel for pillow (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [218 lines of output]
running bdist_wheel
running build
running build_py
creating build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageOps.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PdfParser.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/__init__.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/GimpGradientFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/FtexImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/MpegImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/IcoImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/TiffTags.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageGrab.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_util.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/BlpImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/WalImageFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/FitsImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/WmfImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/FliImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PcfFontFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/DcxImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/Image.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_deprecate.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/BdfFontFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/MicImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PSDraw.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/FontFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/GimpPaletteFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_binary.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/TarIO.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/MspImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageMorph.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_tkinter_finder.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PsdImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageEnhance.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PaletteFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PdfImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/IptcImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImagePath.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/TgaImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageTransform.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageStat.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageQt.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/CurImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageChops.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/QoiImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageDraw.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PngImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/GbrImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/SunImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PalmImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/__main__.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImagePalette.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/XpmImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/BmpImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/AvifImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/DdsImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageColor.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PpmImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageShow.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/GdImageFile.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ContainerIO.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageWin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImtImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/JpegImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageFilter.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageSequence.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PcdImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/SgiImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/MpoImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/XbmImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/features.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageMath.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageTk.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageMode.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_version.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageDraw2.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/EpsImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageFont.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/TiffImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/WebPImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PcxImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/JpegPresets.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ImageCms.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_typing.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/ExifTags.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/GifImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/FpxImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/PixarImagePlugin.py -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/report.py -> build/lib.linux-armv7l-cpython-311/PIL
running egg_info
writing src/pillow.egg-info/PKG-INFO
writing dependency_links to src/pillow.egg-info/dependency_links.txt
writing requirements to src/pillow.egg-info/requires.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 files found matching '*.txt'
warning: no files found matching '.flake8'
warning: no previously-included files found matching '.clang-format'
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 found matching 'renovate.json'
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
no previously-included directories found matching '.ci'
no previously-included directories found matching 'wheels'
adding license file 'LICENSE'
writing manifest file 'src/pillow.egg-info/SOURCES.txt'
copying src/PIL/_avif.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_imaging.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_imagingcms.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_imagingft.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_imagingmath.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_imagingmorph.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_imagingtk.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/_webp.pyi -> build/lib.linux-armv7l-cpython-311/PIL
copying src/PIL/py.typed -> build/lib.linux-armv7l-cpython-311/PIL
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/basic-installation.html
Traceback (most recent call last):
File "<string>", line 1053, in <module>
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 115, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 186, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1102, in run_command
super().run_command(command)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
self.run_command("build")
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1102, in run_command
super().run_command(command)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1102, in run_command
super().run_command(command)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 96, in run
_build_ext.run(self)
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 368, in run
self.build_extensions()
File "<string>", line 862, in build_extensions
RequiredDependencyException: jpeg
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mab/wfpiconsole/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
main()
File "/home/mab/wfpiconsole/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
json_out["return_val"] = hook(**hook_input["kwargs"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mab/wfpiconsole/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
return _build_backend().build_wheel(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-install-2xkflgp7/pillow_b0a690f0df1b4821927b542dc0a667ef/_custom_build/backend.py", line 26, in build_wheel
return super().build_wheel(wheel_directory, config_settings, metadata_directory)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 435, in build_wheel
return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 423, in _build
return self._build_with_temp_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 404, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-install-2xkflgp7/pillow_b0a690f0df1b4821927b542dc0a667ef/_custom_build/backend.py", line 20, in run_setup
return super().run_setup(setup_script)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-9007wdsg/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 317, in run_setup
exec(code, locals())
File "<string>", line 1069, in <module>
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/basic-installation.html
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pillow
Failed to build pillow
ERROR: Failed to build installable wheels for some pyproject.toml based projects (pillow)
The OS is Debian Bookworm with Pi Desktop 32-bit. I haven’t done anything else to it other than image the card and boot into the OS.
EDIT: I ended up having to install:
sudo apt install libjpeg-dev zlib1g-dev
And I was then able to proceeded with the instalation sucessfully.