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.

What You’ll Need For This Project

How to Build a To Do Reminder Frame with E-Paper and a Raspberry Pi

Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to set up a Raspberry Pi for the first time or how to do a headless Raspberry Pi install (without the keyboard and screen). For this project, we recommend a headless Raspberry Pi install.

1. Install git. We’ll need it to download the code from GitHub.

sudo apt-get update
sudo apt-get -y install git

2. Clone the repository to your home directory. This will ensure we have all the code and audio files we need to run the project.

cd ~/
git clone https://github.com/rydercalmdown/todo_reminder_frame.git

3. Run the “make install” command to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run.

cd ~/todo_reminder_frame/
make install

4. Locate the VCC and Ground pins on the e-paper hat, connect them to Raspberry Pi BOARD pins 4 and 6 respectively.

(Image credit: Tom's Hardware)

5. Locate the DIN and CLK pins on the e-paper hat and connect them to Raspberry Pi BOARD pins 19 and 23 respectively.

6. Locate the CS and DC pins on the e-paper hat and connect them to Raspberry Pi BOARD pins 24 and 22 respectively.

(Image credit: Tom's Hardware)

7. Locate the RST and BUSY pins on the e-Paper hat, connect them to Raspberry Pi BOARD pins 11 and 18 respectively.

(Image credit: Tom's Hardware)

8. Using the included ribbon cable, connect your e-paper display hat to your e-paper display, if not already connected.

9. Enable the SPI interface by opening raspi-config and following through the menus.

sudo raspi-config
> 3 - Interface Options
> p4 - SPI
> Enable
> Finish

10. Restart your Raspberry Pi.

sudo reboot

11. Create a ToDoist account and add to-dos, if you haven’t already.

12. Visit your ToDoist integration settings and copy your API token at the bottom.

13. Export your API token to your environment.

nano ~/.bash_profile
# Add the following line near the end of the file
export TODOIST_PERSONAL_TOKEN=your_copied_token
# Ctrl X, then Y, then enter to save and exit.

14. Re-source your environment and run a test. You should see some logs appear indicating the display is retrieving tasks.

source ~/.bash_profile
cd ~/todo_reminder_frame
make run
</code>
<code>
INFO:root:Starting display
INFO:root:Starting 7.5 inch E-Paper Module
INFO:root:Running display
INFO:root:Checking for updates
INFO:root:Getting latest task
INFO:root:Latest task has changed
INFO:root:Updating display with latest task
INFO:root:Getting image buffer
INFO:root:Writing image to paper

15. Check that your display is updating. It should flash and update with your most urgent task. If nothing is happening, and the logs look normal, you may have a pin out of place. For further troubleshooting, visit the manufacturing guide.

16. Remove the back from your 5x7 photo frame and tuck in the e-paper display.

(Image credit: Tom's Hardware)

17. Tuck in the e-paper display with a piece of black construction paper over the top to cover up the edges.

18. Close the back of the frame, allowing the ribbon cable to carefully wrap around.

19. Tuck the hat and the Pi behind the frame, or hot glue them into place behind the frame.

20. Run the application. It will periodically check for the latest highest priority task with the soonest deadline in your ToDoList application.

make run
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