ImportError: No module named pyads Przy auto starcie skrytpu

0

Witam wszystkich.
Mój program importuje zainstalowany moduł pyads:

import DefineSensorName
import pyads
import time
import sys ....

Uruchamian go na Raspberry PI. Gdy uruchamiam go w IDE lub z terminala:
python OdczytDoPlcADS.py & wszystko startuje poprawnie. Chcę by mój program uruchamiał się wraz z startem systemu. Robiłem dwa podejścia bez sukcesu:

  1. Stworzyłem dodatkowy skrypt: instrukcja http://malinowepi.pl/post/81292520171/uruchamianie-w%C5%82asnych-program%C3%B3w-przy-starcie
  2. Poprzez dodanie w /etc/rc.local wywołania:
#AutoStart aplikacji
cd /home/pi                    #przejscie do kartoteki gdzie jest program
python OdczytDoPlcADS.py &     #wykonania programu jako super user

Za każdym razem podczas startu sytemu mam w logach błąd:
ImportError: No module named pyads

Dodatkowo sprawdziłem w terminalu sudo python OdczytDoPlcADS.py & też mi generuje ten sam błąd.
Co robię nie tak. Jestem początkującym użytkownikiem Raspberry. Proszę o wskazówki.

0

To nie odpowiedź na ten konkretnie przypadek, ale kiedy napotykam ten błąd jest on często związany z uprawnieniami dostępu. Instalowałeś przez pip?

0

Tak też podejrzewam, że to problem z prawami dostępu ale nie wiem jak go rozwiązać. Instalowałem też przez pip i niestety nie pomogło.
W /etc/rc.local próbowałem też wywołania:

#AutoStart aplikacji
sudo python OdczytDoPlcADS.py &     #wykonania programu jako super user

Ostatnio też próbowałem uruchamiać poprzez CRON. Cały czas ten sam problem przy imporcie pyads.

0

Jeśli problem nie występuje przy uruchamianiu go po wystartowaniu systemu i zalogowaniu, to znaczy że nie może odnaleźć modułu - jest zbyt wcześnie startowany i nie wynajduje ścieżek do modułów.
Mianowicie, startuj go po zalogowaniu w ostatniej kolejności.

0

Problem jest nie tylko przy uruchomieniu. Bardziej wygląda mi to na brak uprawnień ale nie mam pojęcia jak to poprawić lub sprawdzić.
Testu w terminalu: ```
python OdczytDoPlcADS.py &

Natomiast ```
sudo python OdczytDoPlcADS.py &
``` też mi generuje ten sam błąd: Import Error: No module named pyads.
0

A mi to wygląda na instalację modułu tylko w katalogu usera (a.k.a pip install --user)

0

Próbowałem dodać do launcher.sh start z su ale dostałem komunikat zwrotny, że su: musisz uruchamiać z terminala

Instalowałem bez żadnych dodatkowych opcji:

pip install pyads

Jak sprawdzić gdzie ten moduł jest zainstalowany?

0

N..p.

import sys
import pyads
print(sys.modules['pyads'])
0

Lokalizacja modułu:

>>> import sys
>>> import pyads
>>> print(sys.modules['pyads'])
<module 'pyads' from '/home/pi/.local/lib/python2.7/site-packages/pyads/__init__.pyc'>
0

Po przeinstalowaniu lokalizacja zmieniła się:
<module 'pyads' from '/usr/local/lib/python2.7/dist-packages/pyads/init.pyc'>
Teraz z terminala uruchamia się w obu wyżej opisanych przypadkach.

Jaki preferujecie najlepszy sposób uruchamiania po starcie systemu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1