Проблема с импортом Python 3 при использовании сценария оболочки

#python #python-3.x #shell

#python #python-3.x #оболочка

Вопрос:

У меня следующий сценарий:

  • Пакет Python3 (meross_iot), установленный через pip и расположенный в ~/.local/lib/python3.7/site-packages
  • Скрипт на Python (meross_electricity.py ), который импортируется из этого пакета: from meross_iot.controller.mixins.electricity import ElectricityMixin
  • Сценарий оболочки (launcher.sh ) это должно быть оболочкой, чтобы скрипт .py запускался при запуске:
     #!/bin/sh
    # launcher.sh
    # navigate to home directory, then to this directory, then execute python script, then back home
    
    cd /
    cd home/pi/Documents
    sudo python meross_electricity.py
    cd /
      

Если я просто выполняю файл .py, все работает как ожидалось, импорт выполнен и т.д. Если я пытаюсь запустить скрипт .sh, я получаю следующую ошибку:

 pi@home:~/Documents $ ./launcher.sh
Traceback (most recent call last):
  File "meross_electricity.py", line 4, in <module>
    from meross_iot.controller.mixins.electricity import ElectricityMixin
ModuleNotFoundError: No module named 'meross_iot'
  

Может кто-нибудь, пожалуйста, помочь мне решить эту проблему?
Спасибо!

Комментарии:

1. Вы установили пакет для локального пользователя, в его домашнем хранилище. С помощью sudo вы переключаетесь на пользователя root с другого дома.

2. / ошибка новичка facepalm. Спасибо, Клаус! Решена!

Ответ №1:

Установленный пакет с sudo работал.

Ответ основан на комментарии @KlausD