Библиотека Python загружается и работает правильно из командной строки, но «ImportError: No module», если я пытаюсь запустить при загрузке - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь запустить несколько программ на Python во время загрузки (в связи с некоторыми костюмами для Хэллоуина, которые я делала со своими детьми; я не хочу, чтобы кто-то должен был входить в систему удаленно, чтобы запустить программное обеспечение вих костюмы, если по какой-то причине им придется перезагрузиться).

Программное обеспечение отлично работает, если запускается из командной строки, независимо от того, запущено ли оно из своего собственного каталога или любого другого. Однако, если я пытаюсь запустить при запуске, поместив скрипт в rc.local, ничего не происходит, и я регистрирую следующую ошибку:

Traceback (most recent call last):
  File "/home/pi/sound.py", line 4, in <module>
    from pad4pi import rpi_gpio
ImportError: No module named pad4pi

Дополнительная информация: Дополнительный цвет: which python возвращает '/ usr /bin / python ', и я полностью указал в rc.local, что это Python для использования (/usr/bin/python /home/pi/sound.py &)

Я установил с pip install pad4pi, и проверяя минуту назад, он подтверждает, что pad4pi in ./.local/lib/python2.7/site-packages (1.1.5)

Почему библиотека pad4pi (которая необходима в обоих проектах, над которыми я работаю) будет доступна из командной строки, но не при запуске? И что еще более важно, что я могу с этим поделать?

[Примечание, решение ниже. Я приму ответ, когда stackOverflow позволит мне.]

1 Ответ

0 голосов
/ 21 октября 2019

Библиотека не появлялась в $ Pythonpath во время загрузки.

Я добавил export PYTHONPATH=$PYTHONPATH:/home/pi/.local/lib/python2.7/site-packages в свой файл rc.local, прежде чем он запустил мой код Python, и все было хорошо.

...