Pimoroni Fanshim Python problem

Hi all,

I have freshly installed the ARMv8 64-bit image on a Raspberry Pi 4 model B, through dietpi-software I have then installed Git and Python, after that I have followed the steps on the Pimoroni page to install the Fanshim service, but I receive the errors below and could not find a solution, does anyone have a tipp how to solve it?

Thanks in advance

root@DietPi:~# git clone https://github.com/pimoroni/fanshim-python
Cloning into 'fanshim-python'...
remote: Enumerating objects: 580, done.
remote: Counting objects: 100% (77/77), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 580 (delta 33), reused 49 (delta 22), pack-reused 503
Receiving objects: 100% (580/580), 105.07 KiB | 2.14 MiB/s, done.
Resolving deltas: 100% (343/343), done.
root@DietPi:~# cd fanshim-python
root@DietPi:~/fanshim-python# sudo ./install.sh
Checking for python-configparser
Installing missing packages: python-configparser
Hit:1 https://deb.debian.org/debian bullseye InRelease
Hit:2 https://deb.debian.org/debian bullseye-updates InRelease
Hit:3 https://deb.debian.org/debian-security bullseye-security InRelease
Hit:4 https://deb.debian.org/debian bullseye-backports InRelease
Hit:5 https://archive.raspberrypi.org/debian bullseye InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
[color=#BF0000]E:[/color] Unable to locate package python-configparser
./install.sh: line 64: python: command not found
  Python Library: Installer

Installing for Python 2..
Checking for rpi.gpio>=0.7.0 (for Pi 4 support)
./install.sh: line 80: python: command not found
Installing rpi.gpio
Collecting rpi.gpio>=0.7.0
  Downloading RPi.GPIO-0.7.0.tar.gz (30 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: rpi.gpio
  Building wheel for rpi.gpio (setup.py) ... error
  [color=#BF0000]ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/setup.py'"'"'; __file__='"'"'/tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-at55pw98
       cwd: /tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/
  Complete output (15 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-aarch64-3.9
  creating build/lib.linux-aarch64-3.9/RPi
  copying RPi/__init__.py -> build/lib.linux-aarch64-3.9/RPi
  creating build/lib.linux-aarch64-3.9/RPi/GPIO
  copying RPi/GPIO/__init__.py -> build/lib.linux-aarch64-3.9/RPi/GPIO
  running build_ext
  building 'RPi._GPIO' extension
  creating build/temp.linux-aarch64-3.9
  creating build/temp.linux-aarch64-3.9/source
  aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-aarch64-3.9/source/c_gpio.o
  error: command 'aarch64-linux-gnu-gcc' failed: No such file or directory
  ----------------------------------------
  ERROR: Failed building wheel for rpi.gpio[/color]
  Running setup.py clean for rpi.gpio
Failed to build rpi.gpio
Installing collected packages: rpi.gpio
    Running setup.py install for rpi.gpio ... error
    [color=#BF0000]ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/setup.py'"'"'; __file__='"'"'/tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-aurnb5if/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/rpi.gpio
         cwd: /tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/
    Complete output (17 lines):
    running install
    /usr/local/lib/python3.9/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-aarch64-3.9
    creating build/lib.linux-aarch64-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-aarch64-3.9/RPi
    creating build/lib.linux-aarch64-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-aarch64-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-aarch64-3.9
    creating build/temp.linux-aarch64-3.9/source
    aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-aarch64-3.9/source/c_gpio.o
    error: command 'aarch64-linux-gnu-gcc' failed: No such file or directory
    ----------------------------------------
[color=#BF0000]ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/setup.py'"'"'; __file__='"'"'/tmp/pip-install-g6y2zvnd/rpi-gpio_05b33242f7d543989e0f54609c009642/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-aurnb5if/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/rpi.gpio Check the logs for full command output.[/color]
./install.sh: line 96: python: command not found
Installing for Python 3..
Checking for rpi.gpio>=0.7.0 (for Pi 4 support)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'RPi'
Installing rpi.gpio
Collecting rpi.gpio>=0.7.0
  Using cached RPi.GPIO-0.7.0.tar.gz (30 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: rpi.gpio
  Building wheel for rpi.gpio (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/setup.py'"'"'; __file__='"'"'/tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-z0zux42z
       cwd: /tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/
  Complete output (15 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-aarch64-3.9
  creating build/lib.linux-aarch64-3.9/RPi
  copying RPi/__init__.py -> build/lib.linux-aarch64-3.9/RPi
  creating build/lib.linux-aarch64-3.9/RPi/GPIO
  copying RPi/GPIO/__init__.py -> build/lib.linux-aarch64-3.9/RPi/GPIO
  running build_ext
  building 'RPi._GPIO' extension
  creating build/temp.linux-aarch64-3.9
  creating build/temp.linux-aarch64-3.9/source
  aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-aarch64-3.9/source/c_gpio.o
  error: command 'aarch64-linux-gnu-gcc' failed: No such file or directory
  ----------------------------------------
  ERROR: Failed building wheel for rpi.gpio
[/color]  Running setup.py clean for rpi.gpio
Failed to build rpi.gpio
Installing collected packages: rpi.gpio
    Running setup.py install for rpi.gpio ... error
[color=#BF0000]ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/setup.py'"'"'; __file__='"'"'/tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-k2zb3maj/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/rpi.gpio
         cwd: /tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/
    Complete output (17 lines):
    running install
    /usr/local/lib/python3.9/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-aarch64-3.9
    creating build/lib.linux-aarch64-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-aarch64-3.9/RPi
    creating build/lib.linux-aarch64-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-aarch64-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-aarch64-3.9
    creating build/temp.linux-aarch64-3.9/source
    aarch64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-PN012d/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-aarch64-3.9/source/c_gpio.o
    error: command 'aarch64-linux-gnu-gcc' failed: No such file or directory
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/setup.py'"'"'; __file__='"'"'/tmp/pip-install-aymj4jav/rpi-gpio_75ba39556fa245ae853cc77e4a296da7/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-k2zb3maj/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.9/rpi.gpio Check the logs for full command output.[/color]
running install
/usr/local/lib/python3.9/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/usr/local/lib/python3.9/dist-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
running bdist_egg
running egg_info
creating fanshim.egg-info
writing fanshim.egg-info/PKG-INFO
writing dependency_links to fanshim.egg-info/dependency_links.txt
writing requirements to fanshim.egg-info/requires.txt
writing top-level names to fanshim.egg-info/top_level.txt
writing manifest file 'fanshim.egg-info/SOURCES.txt'
reading manifest file 'fanshim.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE.txt'
writing manifest file 'fanshim.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-aarch64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/fanshim
copying fanshim/__init__.py -> build/lib/fanshim
creating build/bdist.linux-aarch64
creating build/bdist.linux-aarch64/egg
creating build/bdist.linux-aarch64/egg/fanshim
copying build/lib/fanshim/__init__.py -> build/bdist.linux-aarch64/egg/fanshim
byte-compiling build/bdist.linux-aarch64/egg/fanshim/__init__.py to __init__.cpython-39.pyc
creating build/bdist.linux-aarch64/egg/EGG-INFO
copying fanshim.egg-info/PKG-INFO -> build/bdist.linux-aarch64/egg/EGG-INFO
copying fanshim.egg-info/SOURCES.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
copying fanshim.egg-info/dependency_links.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
copying fanshim.egg-info/requires.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
copying fanshim.egg-info/top_level.txt -> build/bdist.linux-aarch64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/fanshim-0.0.5-py3.9.egg' and adding 'build/bdist.linux-aarch64/egg' to it
removing 'build/bdist.linux-aarch64/egg' (and everything under it)
Processing fanshim-0.0.5-py3.9.egg
Copying fanshim-0.0.5-py3.9.egg to /usr/local/lib/python3.9/dist-packages
Adding fanshim 0.0.5 to easy-install.pth file

Installed /usr/local/lib/python3.9/dist-packages/fanshim-0.0.5-py3.9.egg
Processing dependencies for fanshim==0.0.5
Searching for apa102>=0.0.3
Reading https://pypi.org/simple/apa102/
/usr/local/lib/python3.9/dist-packages/pkg_resources/__init__.py:116: PkgResourcesDeprecationWarning:  is an invalid version and will not be supported in a future release
  warnings.warn(
Downloading https://files.pythonhosted.org/packages/24/ba/a8d7a68daba00e73c837dcf68f082a176b2f0afe0c24873c92f3634e4dd1/apa102-0.0.3-py3-none-any.whl#sha256=16ed5c6100a46645ca08d31a04e0182f6b21f431b4ff54ed508f83cf51af6478
Best match: apa102 0.0.3
Processing apa102-0.0.3-py3-none-any.whl
Installing apa102-0.0.3-py3-none-any.whl to /usr/local/lib/python3.9/dist-packages
Adding apa102 0.0.3 to easy-install.pth file

Installed /usr/local/lib/python3.9/dist-packages/apa102-0.0.3-py3.9.egg
Searching for spidev
Reading https://pypi.org/simple/spidev/
Downloading https://files.pythonhosted.org/packages/62/56/de649e7d95f9fcfaf965a6eb937b4a46bc77ef21487c99cde1a7a0546040/spidev-3.5.tar.gz#sha256=8a7f5c289f161ea2ac4697fa8a10918232c990678dd0053084b3c43b1363910d
Best match: spidev 3.5
Processing spidev-3.5.tar.gz
Writing /tmp/easy_install-opvnt930/spidev-3.5/setup.cfg
Running spidev-3.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-opvnt930/spidev-3.5/egg-dist-tmp-sgrh7qdo
/usr/local/lib/python3.9/dist-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
  warnings.warn(
/usr/local/lib/python3.9/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
error: Setup script exited with error: command 'aarch64-linux-gnu-gcc' failed: No such file or directory
Done!

Looks like some issues with the script and you missed to install required dependency. It seems the script is not ready for Bullseye

  • Package python-configparser is not available on Bullseye
  • script is trying to install stuff for Python 2 wich is depreciated long time ago and not available in Bullseye
  • rpi.gpio>=0.7.0 should have issues on Bullseye Python 3.9
  • you are missing Build-Essential package

Thanks for your answer.

Basically Pimoroni should update the script, right? Or is there a workaround?

yes would be good if they would review at least. But this might not fix all issues you have.

Better move back to Buster, you mean?

this I can’t answer as it depends on your needs. If you require this software it might be needed.

Thanks again for your answers, I have opened a topic on Pimoroni and pasted what you wrote me https://forums.pimoroni.com/t/pimoroni-fanshim-script-and-bullseye/18170

ok perfect. I see guys picked it up and start working on it.

Just a side node, I guess Build-Essential package is something you would need to install manually. It’s available on our software catalogue.