I am running ubuntu on a raspberry pi and I cannot figure out how to activate the GPIO pins. I am trying to activate a python script with a button press.

Here is my script:

import RPi.GPIO as GPIO
import time
import os


GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)

while True:
    input_state = GPIO.input(18)
    if input_state == False:
    os.system('python backup.py')


When I run this I get an error that says; no such import as import RPi.GPIO as GPIO

Any help would be appreciated.

1 Answer 1


In the terminal type:

sudo apt update
sudo apt upgrade
sudo apt install python-pip python-dev
pip install --user RPi.GPIO  

If you are using Python 3.x run these commands.

sudo apt update
sudo apt upgrade
sudo apt install python3-pip python3-dev
pip3 install --user RPi.GPIO   

The raspberry-gpio-python examples are worth reading. In the Inputs example there is this code snippet:

while GPIO.input(channel) == GPIO.LOW:

It waits 10 ms to give CPU a chance to do other things.

  • 1
    why sudo apt-get upgrade? seems like that is completely unnecessary
    – knocte
    Aug 27, 2016 at 22:06
  • 1
    Because python-pip is a third-party package manager and therefore inherently less stable than using apt to install software from the default repositories, I would prefer to update all the other software before installing pip.
    – karel
    Aug 28, 2016 at 0:32
  • does this add the /dev/gpio device as seen in the raspbian kernel or this this a python workaround?
    – FalcoGer
    Nov 5, 2019 at 9:56
  • RPi.GPIO Python package provides a class to control the GPIO on a Raspberry Pi.
    – karel
    Nov 5, 2019 at 10:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.