Issue
I'm trying to install the library above on a Raspberry Pi 4 running Raspbian Buster / RetroPi .
Setup collects packages, and then fails on setup.py
stating:
* Setup can't determine the value of PAGE_SIZE on your system, so it will
* default to 4096 which may not be correct.
More diagnostics/troubleshooting tried:
- I've installed the same package previously on a Raspberry Pi 3 without issue (Which I think was also running Buster)
- I've managed to install other python packages on the Pi 4 using
pip3 install
i.e.tornado
,colorzero
etc. - I've run
sudo apt update && sudo apt upgrade
+ rebooting- didn't help - I've tried python 2 (
pip install pip install adafruit-circuitpython-neopixel
) - same error
Any help would be appreciated - thanks!
Full Error:
pip3 install adafruit-circuitpython-neopixel
Defaulting to user installation because normal site-packages is not writeable
Collecting adafruit-circuitpython-neopixel
Using cached adafruit-circuitpython-neopixel-6.0.3.tar.gz (28 kB)
Collecting Adafruit-Blinka
Using cached Adafruit-Blinka-6.4.2.tar.gz (122 kB)
Collecting adafruit-circuitpython-pypixelbuf>=2.0.0
Using cached adafruit-circuitpython-pypixelbuf-2.2.4.tar.gz (28 kB)
Collecting Adafruit-PlatformDetect>=3.1.0
Using cached Adafruit-PlatformDetect-3.5.0.tar.gz (29 kB)
Collecting Adafruit-PureIO>=1.1.7
Using cached Adafruit_PureIO-1.1.8.tar.gz (26 kB)
Collecting pyftdi>=0.40.0
Using cached pyftdi-0.52.9-py3-none-any.whl (139 kB)
Requirement already satisfied: RPi.GPIO in /usr/lib/python3/dist-packages (from Adafruit-Blinka->adafruit-circuitpython-neopixel) (0.7.0)
Collecting rpi_ws281x>=4.0.0
Using cached rpi_ws281x-4.2.6.tar.gz (63 kB)
Collecting sysv_ipc>=1.1.0
Using cached sysv_ipc-1.1.0.tar.gz (99 kB)
Requirement already satisfied: pyusb>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from pyftdi>=0.40.0->Adafruit-Blinka->adafruit-circuitpython-neopixel) (1.1.1)
Requirement already satisfied: pyserial>=3.0 in /usr/local/lib/python3.7/dist-packages (from pyftdi>=0.40.0->Adafruit-Blinka->adafruit-circuitpython-neopixel) (3.5)
Using legacy 'setup.py install' for adafruit-circuitpython-neopixel, since package 'wheel' is not installed.
Using legacy 'setup.py install' for adafruit-circuitpython-pypixelbuf, since package 'wheel' is not installed.
Using legacy 'setup.py install' for Adafruit-Blinka, since package 'wheel' is not installed.
Using legacy 'setup.py install' for Adafruit-PlatformDetect, since package 'wheel' is not installed.
Using legacy 'setup.py install' for Adafruit-PureIO, since package 'wheel' is not installed.
Using legacy 'setup.py install' for rpi-ws281x, since package 'wheel' is not installed.
Using legacy 'setup.py install' for sysv-ipc, since package 'wheel' is not installed.
Installing collected packages: sysv-ipc, rpi-ws281x, pyftdi, Adafruit-PureIO, Adafruit-PlatformDetect, Adafruit-Blinka, adafruit-circuitpython-pypixelbuf, adafruit-circuitpython-neopixel
Running setup.py install for sysv-ipc ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9qk3bog7/sysv-ipc_2c9b66fe81a04f5c99cf319aff553101/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9qk3bog7/sysv-ipc_2c9b66fe81a04f5c99cf319aff553101/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-d842td8m/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/pi/.local/include/python3.7m/sysv-ipc
cwd: /tmp/pip-install-9qk3bog7/sysv-ipc_2c9b66fe81a04f5c99cf319aff553101/
Complete output (19 lines):
******************************************************************************
* Setup can't determine the value of PAGE_SIZE on your system, so it will
* default to 4096 which may not be correct.
*
* Please report this message and your operating system info to the package
* maintainer listed in the README file.
******************************************************************************
running install
running build
running build_ext
building 'sysv_ipc' extension
creating build
creating build/temp.linux-armv7l-3.7
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.7m -c sysv_ipc_module.c -o build/temp.linux-armv7l-3.7/sysv_ipc_module.o
sysv_ipc_module.c:32:10: fatal error: Python.h: No such file or directory
#include "Python.h"
^~~~~~~~~~
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9qk3bog7/sysv-ipc_2c9b66fe81a04f5c99cf319aff553101/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9qk3bog7/sysv-ipc_2c9b66fe81a04f5c99cf319aff553101/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-d842td8m/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/pi/.local/include/python3.7m/sysv-ipc Check the logs for full command output.
Solution
SuperStormer suggested sudo apt install python3-dev
- which worked!
I have no idea why this works, as This post suggests that it's usage is for Python extensions, not regular libraries.
It apparently contains the Python C headers, so maybe the library needed those for some reason.
Answered By - Jonathan Levin