Failing to install

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.

Sorry you ran into trouble and thanks for sharing your solution. What model Raspberry Pi are you using? I will add the extra dependencies to the install script

Hello! Installed WeatherFlow PiConsole on a Raspberry PI 5, Bookworm, 64 bit, headless, using RealVNC viewer. No issues, works perfectly. Amazing piece of work with this little app!
Might look into the code and see how it works cause because,
IT JUST WORKS!
Hardest part was finding and sorting out the Location ID, Station ID, and Device ID.
Attaching Neofetch screen capture.

1 Like

It’s a Raspberry pi 3B v 1.2

1 Like