If you are anything like me, when you first start with a Raspberry Pi, you probably just want to control things. Today, for many developers, their first point of contact with physical computing using a Raspberry Pi will be via the official Raspberry Pi website and with the GPIOZero library. However, after you've been tinkering with simple electronics such as buttons, LEDs, and motors for a while, you'll want to undertake more complex interfacing. If you've taken this step—or are about to—you may find yourself in the somewhat confusing world of GPIO libraries and options. This section is here to help you to navigate this path by presenting the more popular options.
I maintain a summary and comparison table of Python GPIO libraries (including additional libraries not listed in the following sections) at https://10xiot.com/gpio-comp-table.
We'll start our GPIO Library overview with GPIOZero.