0

I'm coding on Rpi3 using python3. When trying to run a code, containing a gpiozero lib - it fails when running on RpiZero, while succeeds on Rpi3.

RpiZero contains gpiozero lib

Trying to find the reason- I simplified the code into:

#import LocalSwitch
import time
import gpiozero
from signal import pause
#time.sleep(3)

for x in range(10):
    print(x)

a = gpiozero.Button(11)
#b = gpiozero.Buzzer(4)


pause()

EDIT 1 OS installed:

Linux rpi2 4.9.59+ #1047 Sun Oct 29 11:47:10 GMT 2017 armv6l GNU/Linux

EDIT 2 - Run as SU

Runs as needed

yields this error:

guy@rpi2:~/Documents/github/Rpi/SmartHome $ python3 tst.py 
0
1
2
3
4
5
6
7
8
9
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/gpiozero/pins/pi.py", line 71, in pin
    pin = self.pins[n]
KeyError: 11

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "tst.py", line 13, in <module>
    a = gpiozero.Button(11)
  File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 95, in __call__
    self = super(GPIOMeta, cls).__call__(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 303, in __init__
    pin, pull_up, bounce_time, pin_factory=pin_factory
  File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 338, in __init__
    super(HoldMixin, self).__init__(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 95, in __init__
    pin, pull_up, pin_factory=pin_factory
  File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 164, in __init__
    super(EventsMixin, self).__init__(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/gpiozero/input_devices.py", line 46, in __init__
    super(InputDevice, self).__init__(pin, pin_factory=pin_factory)
  File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 375, in __init__
    pin = self.pin_factory.pin(pin)
  File "/usr/lib/python3/dist-packages/gpiozero/pins/pi.py", line 73, in pin
    pin = self.pin_class(self, n)
  File "/usr/lib/python3/dist-packages/gpiozero/pins/rpigpio.py", line 101, in __init__
    GPIO.setup(self.number, GPIO.IN, self.GPIO_PULL_UPS[self._pull])
RuntimeError: No access to /dev/mem.  Try running as root!

Any ideas why ??

guyd
  • 588
  • 3
  • 13
  • 28

0 Answers0