У меня есть скрипт на python main.py, который импортирует библиотеку RPi.GPIO с использованием import RPi.GPIO as GPIO
Когда я запускаю скрипт с использованием python3 main.py, я получаю сообщение об ошибке, в котором говорится, что RPi.GPIO не найден.Если я запускаю main.py, используя sudo python3 main.py, то все работает нормально.
Я установил RPi.GPIO, используя файл tar.gz.Я скопировал его в свой каталог / home / pi / work и распаковал архив в тот же каталог.Затем я перешел в извлеченный каталог и установил RPi.GPIO, используя sudo python3 setup.py install.
Поскольку я обычно не использую Linux, я не до конца понимаю разрешения, которые, я уверен, являются причиной этой проблемы.Я предполагаю, что, поскольку я установил с помощью sudo, пакет доступен только пользователю sudo.Проблема в том, что я запускаю эту программу из файла rc.local, и сценарий main.py не запускается при запуске с оператором импорта RPi.GPIO.Если я удаляю оператор импорта, он начинается как положено.Ниже приведен код в файле rc.local, который запускает программу su -l pi -c '/usr/bin/python3 /home/pi/Work/main.py &'
Я попытался изменить su на sudo, но это не сработало.
Есть ли другой способ установить RPi.GPIO или изменить скрипт rc.local, чтобы это работало?Кроме того, к вашему сведению, мой пи не имеет подключения к Интернету, поэтому я не могу использовать APT-GET для удаления или установки пакета.
Также на всякий случай, если некоторые из вас задаются вопросом, правильно ли установлен пакет.Если я запускаю python с sudo python3
, я получаю >>>.Затем я набираю import RPi.GPIO as GPIO
Я получаю >>> снова.Затем я набираю GPIO.VERSION
, и отображается правильная версия, которую я установилБуду признателен за любую помощь.
ОБНОВЛЕНИЕ Я не создал код для файла rc.local и посмотрел немного ближе к нему.Оператор su -l pi -c '/usr/bin/python3 /home/pi/Work/main.py &'
, который я обнаружил, меняет пользователя с root на pi и выполняет скрипт под пользователем pi.Поэтому я попытался изменить выражение на su -l sudo -c '/usr/bin/python3 /home/pi/Work/main.py &'
, думая, что, поскольку я могу запустить main.py с помощью sudo python3 main.py
, то при изменении пользователя с pi на sudo в файле rc.local файл будет выполнен как sudo.Это все еще не работает.Затем я попытался удалить команду su из команды rc.local и запустил это /usr/bin/python3 /home/pi/Work/main.py &
, но это тоже не сработало.У кого-нибудь есть предложения, как мне заставить это работать?