How To Fix Error Loading RPi.GPIO Python Library On Your Brand New Raspberry Pi 2
If you’ve just setup your shiny new Raspberry Pi 2 and tried to run a Python script that accesses GPIO you might be sad to see an error like this:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: This module can only be run on a Raspberry Pi!
Don’t worry! The version of the RPi.GPIO Python library shipped with the latest Raspbian OS doesn’t support the Pi 2 out of the box, but you can install a later version to fix the problem.
First check what version of the RPi.GPIO library is currently available from Python’s package index here. Version 0.5.9 and below unfortunately are not compatible with the Pi 2, however version 0.5.10 and above should work.
If you see version 0.5.10 or greater on the site then you can install it with a few simple commands. First connect to your Pi 2 in an SSH / terminal session (check out this guide if you’re new to Linux & the Pi 2, or try the awesome new Pi Finder to get a terminal open easily). Once connected to your Pi 2 run these commands to update RPi.GPIO to the latest version:
Answer yes to any questions that come up about downloading and installing software. After everything finishes you should be all set and ready to use the RPi.GPIO library on the Pi 2. Remember this method will only work once the RPi.GPIO library on the Python package index is updated to version 0.5.10 or greater!
As of the time of this writing the 0.5.10 version hasn’t been put up on the Python package index yet, so as a workaround you can manually download the RPi.GPIO library from its home on Sourceforge and install it with a few simple commands. Don’t worry this only takes a few more commands than installing from the Python package index. Connect to your Pi 2 in a terminal session as mentioned above, but this time execute these commands:
Answer yes to any questions about installing packages. After running the last command above you should see some text scroll by as the library is compiled and installed. If it successfully installs you should see a message like “Writing /usr/local/lib/python2.7/dist-packages/RPi.GPIO-0.5.10a.egg-info” as the last output. At this point you’re all set to use the RPi.GPIO library on your Pi 2! If you see an error message carefully check all the commands above were successfully executed and try again.
I gave the latest 0.5.10a version of the RPi.GPIO library a quick test and it seems to work great for accessing GPIO on the Pi 2. Since the Pi 2 is brand new you might run into issues or problems with libraries like RPi.GPIO. The best place to go for help are the Raspberry Pi forums–good luck and enjoy your Pi 2!
We are angry, frustrated, and in pain because of the violence and murder of Black people by the police because of racism. We are in the fight AGAINST RACISM. George Floyd was murdered, his life stolen. The Adafruit teams have specific actions we’ve done, are doing, and will do together as a company and culture. We are asking the Adafruit community to get involved and share what you are doing. The Adafruit teams will not settle for a hash tag, a Tweet, or an icon change. We will work on real change, and that requires real action and real work together. That is what we will do each day, each month, each year – we will hold ourselves accountable and publish our collective efforts, partnerships, activism, donations, openly and publicly. Our blog and social media platforms will be utilized in actionable ways. Join us and the anti-racist efforts working to end police brutality, reform the criminal justice system, and dismantle the many other forms of systemic racism at work in this country, read more @ adafruit.com/blacklivesmatter
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
RPi.GPIO should be released this weekend. It could well require a firmware fix that has only just been committed on github to work properly. Not having this fix will cause havoc with anything that uses software PWM.
Awesome, thanks for the update and providing such a great library!
Many thanks for providing this info, your much more than a company, at times like this your a life saver….well time at least, nearly a wasted weekend working with GPIO on the Raspberry Pi 2.
Second the thanks to Ben for providing such a great (and essential) library, thanks also from the many kids who get such enjoyment in controlling the real world (well led’s and buzzers at least) in the school environment.
Got a RPi 2 B today and did an apt-get update followed by an apt-get upgrade and it now has GPIO ver 0.5.10￼
I will try some of the Adafruit libs like backpack display later
but will first make a backup of the upgraded and somewhat set up image on the SD card just in case the libs are not yet ready for RPi 2 B
Thanks Ben for a great lib
Thanks Tony for all your tutorials they have been a great learning examples as I learn Python .