How to Build an E-Paper To-Do List with Raspberry Pi

Raspberry Pi E-Paper Reminder
(Image credit: Tom's Hardware)

I’ve often struggled with procrastination, and to-do applications have been lifesaving. I sometimes find myself needing a reminder to just focus on getting the most important task done before working on anything else. 

With that in mind, I created a simple photo frame to sit on my desk and remind me of my most important task of the day using e-paper and a Raspberry Pi. I wanted to use e-Paper specifically since it’s low-power and not as distracting as a standard display would be. If you’re the kind of person who likes a simple reminder of your most important tasks, here’s how to build it for yourself.

Latest Videos FromTom's Hardware
Ryder Damen
Freelance Writer

Ryder Damer is a Freelance Writer for Tom's Hardware US covering Raspberry Pi projects and tutorials.

  • brandonjclark
    Maybe it's just me, but a pen and paper seems like a good method here.
    Reply
  • hotsacoman
    It's cool...but the price of the parts are 100+.
    Reply
  • stephencross
    Great project idea. I'm having trouble with the install process. It fails on:
    Building wheels for collected packages: RPi.GPIO
    Building wheel for RPi.GPIO (setup.py) ... error

    ERROR: Command errored out with exit status 1:
    command: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-7bui55pt
    cwd: /tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/
    Complete output (87 lines):
    running bdist_wheel
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated 1046 | if (!PyEval_ThreadsInitialized())
    | ^~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated 1047 | PyEval_InitThreads();
    | ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
    | ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
    ----------------------------------------
    ERROR: Failed building wheel for RPi.GPIO
    Running setup.py clean for RPi.GPIO
    Failed to build RPi.GPIO
    Installing collected packages: RPi.GPIO, requests, pillow, numpy, flask
    Running setup.py install for RPi.GPIO ... error
    ERROR: Command errored out with exit status 1:
    command: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-t3eozh0v/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/todo_reminder_frame/env/include/site/python3.9/RPi.GPIO
    cwd: /tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/
    Complete output (89 lines):
    running install
    /home/pi/todo_reminder_frame/env/lib/python3.9/site-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-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated 1046 | if (!PyEval_ThreadsInitialized())
    | ^~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated 1047 | PyEval_InitThreads();
    | ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
    | ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
    ----------------------------------------
    ERROR: Command errored out with exit status 1: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-t3eozh0v/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/todo_reminder_frame/env/include/site/python3.9/RPi.GPIO Check the logs for full command output.
    Any assistance resolving this would be helpful.

    Running:
    Pi 3 B
    Raspberry Pi OS 11 (Bullseye)
    Reply
  • Malikaie
    I'm stuck on step 14... Any ideas?

    i@raspberrypi:~/todo_reminder_frame $ make run
    Traceback (most recent call last):
    File "/home/pi/todo_reminder_frame/src/app.py", line 4, in <module>
    from paper_controller import PaperController
    File "/home/pi/todo_reminder_frame/src/paper_controller.py", line 4, in <module>
    from epaper_libs import epd7in5_V2
    File "/home/pi/todo_reminder_frame/src/epaper_libs/epd7in5_V2.py", line 33, in <module>
    from . import epdconfig
    File "/home/pi/todo_reminder_frame/src/epaper_libs/epdconfig.py", line 152, in <module>
    implementation = RaspberryPi()
    File "/home/pi/todo_reminder_frame/src/epaper_libs/epdconfig.py", line 46, in init import spidev
    ImportError: /home/pi/todo_reminder_frame/env/lib/python3.9/site-packages/spidev.cpython-39-arm-linux-gnueabihf.so: invalid ELF header
    make: *** Error 1

    Everything's assembled and ready, but we're stuck on the last step.
    Reply
  • stephencross
    stephencross said:
    Great project idea. I'm having trouble with the install process. It fails on:
    Building wheels for collected packages: RPi.GPIO
    Building wheel for RPi.GPIO (setup.py) ... error

    ERROR: Command errored out with exit status 1:
    command: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-7bui55pt
    cwd: /tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/
    Complete output (87 lines):
    running bdist_wheel
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated 1046 | if (!PyEval_ThreadsInitialized())
    | ^~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated 1047 | PyEval_InitThreads();
    | ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
    | ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
    ----------------------------------------
    ERROR: Failed building wheel for RPi.GPIO
    Running setup.py clean for RPi.GPIO
    Failed to build RPi.GPIO
    Installing collected packages: RPi.GPIO, requests, pillow, numpy, flask
    Running setup.py install for RPi.GPIO ... error
    ERROR: Command errored out with exit status 1:
    command: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-t3eozh0v/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/todo_reminder_frame/env/include/site/python3.9/RPi.GPIO
    cwd: /tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/
    Complete output (89 lines):
    running install
    /home/pi/todo_reminder_frame/env/lib/python3.9/site-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-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated 1046 | if (!PyEval_ThreadsInitialized())
    | ^~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated 1047 | PyEval_InitThreads();
    | ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
    | ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
    ----------------------------------------
    ERROR: Command errored out with exit status 1: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-t3eozh0v/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/todo_reminder_frame/env/include/site/python3.9/RPi.GPIO Check the logs for full command output.
    Any assistance resolving this would be helpful.

    Running:
    Pi 3 B
    Raspberry Pi OS 11 (Bullseye)
    stephencross said:
    Great project idea. I'm having trouble with the install process. It fails on:
    Building wheels for collected packages: RPi.GPIO
    Building wheel for RPi.GPIO (setup.py) ... error

    ERROR: Command errored out with exit status 1:
    command: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-7bui55pt
    cwd: /tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/
    Complete output (87 lines):
    running bdist_wheel
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated 1046 | if (!PyEval_ThreadsInitialized())
    | ^~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated 1047 | PyEval_InitThreads();
    | ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
    | ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
    ----------------------------------------
    ERROR: Failed building wheel for RPi.GPIO
    Running setup.py clean for RPi.GPIO
    Failed to build RPi.GPIO
    Installing collected packages: RPi.GPIO, requests, pillow, numpy, flask
    Running setup.py install for RPi.GPIO ... error
    ERROR: Command errored out with exit status 1:
    command: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-t3eozh0v/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/todo_reminder_frame/env/include/site/python3.9/RPi.GPIO
    cwd: /tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/
    Complete output (89 lines):
    running install
    /home/pi/todo_reminder_frame/env/lib/python3.9/site-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-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    running build_ext
    building 'RPi._GPIO' extension
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated 1046 | if (!PyEval_ThreadsInitialized())
    | ^~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated 1047 | PyEval_InitThreads();
    | ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
    from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
    | ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/pi/todo_reminder_frame/env/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-z,relro -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
    ----------------------------------------
    ERROR: Command errored out with exit status 1: /home/pi/todo_reminder_frame/env/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv = '"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/setup.py'"'"'; __file__='"'"'/tmp/pip-install-igg23bd3/rpi-gpio_cd65c343ec424678ac18aea0d0a01521/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-t3eozh0v/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/todo_reminder_frame/env/include/site/python3.9/RPi.GPIO Check the logs for full command output.
    Any assistance resolving this would be helpful.

    Running:
    Pi 3 B
    Raspberry Pi OS 11 (Bullseye)

    I was able to get past this by installing by installing GPIO manually with:
    export CFLAGS=-fcommon
    pip3 install RPi.GPIO
    Reply
  • stephencross
    WARNING: The sample code does not Sleep the screen after updating it. As a result, the screen could become damaged. Tech support for Waveshare indicated the screen should be put to sleep after updating it. This information is also available on the wiki page at https://www.waveshare.com/wiki/E-Paper_Driver_HAT
    To fix the existing code. The Sleep method needs to be run when the display update is complete. Then, before updating the display, init needs to be executed. I fixed the sample code by adding an init method to the ToDoDisplay class:

    def init(self):
    self.paper.init()
    The called Sleep and Init in the app.py while loop:

    while True:
    self._tick()
    self.pc.sleep()
    time.sleep(self.update_every_x_seconds)
    self.pc.init()
    Reply