I'm having trouble using the gpiozero library on my Raspberry Pi. Here's what I've tried:
- Installed via apt:
sudo apt install python3-gpiozero
Output:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3-gpiozero is already the newest version (2.0.1-0+rpt1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
However, when I run my Python script:
I get:
(base) pi@raspberrypi:~ $ python3 servo.py
Traceback (most recent call last):
File "/home/pi/servo.py", line 2, in <module>
from gpiozero import AngularServo
ModuleNotFoundError: No module named 'gpiozero'
Note: The script works when I use sudo python servo.py.
- Tried installing via pip: First installed pip:
sudo apt install python3-pip
(Already had the newest version)
Then tried:
sudo pip3 install gpiozero
But got:
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip.
Questions:
How can I use gpiozero by the command: python3 servo.py?
the servo.py is below:
from time import sleep
from gpiozero import AngularServo
from gpiozero import OutputDevice
laserGPIO = 21
laser = OutputDevice(laserGPIO)
laser.on()
SERVO1_PIN = 18
SERVO2_PIN = 23
MIN_PW = 0.5 / 1000
MAX_PW = 2.5 / 1000
servo1 = AngularServo(SERVO1_PIN, min_pulse_width=MIN_PW, max_pulse_width=MAX_PW, min_angle=0, max_angle=180)
servo2 = AngularServo(SERVO2_PIN, min_pulse_width=MIN_PW, max_pulse_width=MAX_PW, min_angle=0, max_angle=180)
while True:
servo1.angle = 90
servo2.angle = 90
print("Position: MID (90°)")
sleep(0.5)
servo2.angle = 100
print("position 100 deg")
sleep(0.5)
laser.off()
my os is 64bit lite. my python version is 3.11.2