How to Install RPi.GPIO Python Library
The RPi.GPIO Python library allows you to easily configure and read-write the input/output pins on the Pi’s GPIO header within a Python script. Thankfully this library is now including in the standard Raspbian image available from the Foundations Download Page.
If you are using a fresh image you don’t need to install it but I’ve kept the instructions here in case you ever want to try a manually installation. [1]
Method 1 – Install from repository
If the package exists in the Raspbian repository is can be installed using apt-get. First you need to update the available package versions:
sudo apt-get update
Then attempt to install the RPi.GPIO package :
sudo apt-get install rpi.gpio
If it isn’t already installed it will be installed. If it is already installed it will be upgraded if a newer version is available.
Method 2 – Manual Installation
The package is available from http://pypi.python.org/pypi/RPi.GPIO and the current version is 0.7.1 (Feb 6, 2022). If this version is updated you will need to make appropriate changes to the version number in the commands below.
Step 1 – Download the library
wget https://files.pythonhosted.org/packages/c4/0f/10b524a12b3445af1c607c27b2f5ed122ef55756e29942900e5c950735f2/RPi.GPIO-0.7.1.tar.gz
Step 2 – Extract the archive to a new folder
tar -xvf RPi.GPIO-0.7.1.tar.gz
Step 3 – Browse to the new directory
cd RPi.GPIO-0.7.1
Step 4 – Install the library
sudo python setup.py install
Step 5 – Remove the directory and archive file
cd ~ sudo rm -rf RPi.GPIO-0.*
This will now mean you can use the library within Python.
Example Usage
import RPi.GPIO as GPIO
# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)
# set up the GPIO channels - one input and one output
GPIO.setup(11, GPIO.IN)
GPIO.setup(12, GPIO.OUT)
# input from pin 11
input_value = GPIO.input(11)
# output to pin 12
GPIO.output(12, GPIO.HIGH)
# the same script as above but using BCM GPIO 00..nn numbers
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)
GPIO.setup(18, GPIO.OUT)
input_value = GPIO.input(17)
GPIO.output(18, GPIO.HIGH)
References
Enable comment auto-refresher