Issue #140 [New/open] - NameError: global name 'GPIO' is not defined

Posted by MisterLoupio

What steps will reproduce the problem?

  1. I have downloaded it at :https://code.google.com/p/webiopi/wiki/DOWNLOADS?tm=2
  2. I type that in a terminal : tar xvzf WebIOPi-0.7.1.tar.gz cd WebIOPi-0.7.1 sudo ./setup.sh
  3. I have launched it : sudo python -m webiopi 8000
  4. I connected at : https://....:8000/app/gpio-list

WebIOPi version used? =>0.7.1

Python version used? =>3.2

Distro used? (WebIOPi has only been tested on Raspbian Wheezy) => Raspbian

Raspberry Pi board revision? (1 or 2) =>I've got the Raspberry Pi 2

For Javascript side bugs, Browser? => No bug with JS

Please provide any additional information below.

I have got this error :

Exception happened during processing of request from ('192.168.0.91', 56443) Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__ self.handle() File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle self.handle_one_request() File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request method() File "/usr/local/lib/python2.7/dist-packages/WebIOPi-0.7.1-py2.7-linux-armv7l.egg/webiopi/protocols/http.py", line 267, in do_GET self.processRequest() File "/usr/local/lib/python2.7/dist-packages/WebIOPi-0.7.1-py2.7-linux-armv7l.egg/webiopi/protocols/http.py", line 264, in processRequest raise e

NameError: global name 'GPIO' is not defined


Comment 1

Posted by sksell

Having the same issue.


Comment 2

Posted by lukaszbek

WebIOPI is not working yet on Raspberry Pi 2.

There are things that You can do to change it.

You must change two files located in /python/native directory.

First change setup method in gpio.c file Second change get_cpuinfo_revision method in cpuinfo.c

I've attached two needed files.

When you replace files in sources You must install it once again. Then it should work on RPI 2! :)

Files attached


Comment 3

Posted by MisterLoupio

I can't find /python/native where is it located ?


Comment 4

Posted by lukaszbek

it is in sources when you untar downloaded archives.


Comment 5

Posted by aln1177@yahoo.com

Got it working after replacing the said files.

Noticed that GPIO list shows only up to pin 26. Pins 27 to 40 is not present.

Also use RPi 2...


Comment 6

Posted by MisterLoupio

Do you know when the WebIOPi 0.7.2 will appear ??


Comment 7

Posted by lukaszbek

to use pins 27 to 40 you must change a lot in WebIOPi...

First You must change version.py to handle new pins.

second you must do some changes in webiopi.js


Comment 8

Posted by aln1177@yahoo.com

Sorry i wasn't able to post an update earlier.

I got it to show all pins the other night by modifying the mentioned files (namely version.py under python/webiopi/utils folder and webiopi.js under htdocs folder).

Everything seems ok except that I noticed pins #29 (GPIO 5) and #31 (GPIO 6) were not as the same as the rest in terms of default status.

Under GPIO header, it shows that GPIO 5 has a default status of OUT,HIGH, while GPIO 6 has IN,HIGH.

I don't know if it means anything. Just wanted to share what I experienced. Thanks for the help by the way regarding the two attached files under python/native folder...


Comment 9

Posted by sksell

Can you post your modified version.py I will see what mine has for status for 5 and 6 this weekend and report back


Comment 10

Posted by aln1177@yahoo.com

Alright. Here you go...

Files attached


Comment 11

Posted by lukaszbek

in my pi gpio #5 and #6 are in default state IN and HIGH signal... there is a config file where you can change the start state of pins.. just sudo nano /etc/webiopi/config


Comment 12

Posted by oashaikh

Can someone please post the modified webiopi.js Thanks


Comment 13

Posted by mwingaa

Thanks a lot.

It's working perfectly on my Pi2 :)

-Mikael


Comment 14

Posted by weekeda

Yes cross fingers that a new version will be released soon... Would also be intrested in the modified webiopi.js

Thanks


Comment 15

Posted by aln1177@yahoo.com

Here as requested...

Files attached


Comment 16

Posted by sutoandras

After replacing the two files in the source and reinstall worked for me. Thank you.


Comment 17

Posted by DaMaltor

Thanks for posting the files. they work perfectly on my pi2. i do also have the pins 5/6 in IN and HIGH state, but that actually doesnt bother me.


Comment 18

Posted by vic@zymsys.com

This worked for me too. Just to make it a little easier for the next person, download the above files and then, with those in your home directory, and with your current working directory in $HOME/WebIOPi-0.7.1, assuming you've extracted the sources there, the following are the mv commands to put these files into place:

pi@raspberrypi ~/WebIOPi-0.7.1 $ mv ../gpio.c python/native/gpio.c pi@raspberrypi ~/WebIOPi-0.7.1 $ mv ../cpuinfo.c python/native/cpuinfo.c pi@raspberrypi ~/WebIOPi-0.7.1 $ mv ../version.py python/webiopi/utils/version.py pi@raspberrypi ~/WebIOPi-0.7.1 $ mv ../webiopi.js htdocs/webiopi.js

Adjust your paths if you've got things in different places. Then run setup.sh and you're good to go.

Thanks to everyone who has contributed to this - very cool!


Comment 19

Posted by mma19712003

Thanks this worked for me also


Comment 20

Posted by pistiolasm

Hi, I followed this but I am still getting this error:


Exception happened during processing of request from ('::ffff:10.0.1.10', 58771, 0, 0) Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/SocketServer.py", line 655, in __init__ self.handle() File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle self.handle_one_request() File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request method() File "build/bdist.linux-armv7l/egg/webiopi/protocols/http.py", line 267, in do_GET self.processRequest() File "build/bdist.linux-armv7l/egg/webiopi/protocols/http.py", line 258, in processRequest except (GPIO.InvalidDirectionException, GPIO.InvalidChannelException, GPIO.SetupException) as e:

NameError: global name 'GPIO' is not defined


Comment 21

Posted by sebastiencarrier76

Thanks for this solution, work perfectly!