ImportError: No module named pyads Przy auto starcie skrytpu

Odpowiedz Nowy wątek
2017-11-09 20:07
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/812[...]h-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.

Pozostało 580 znaków

2017-11-09 21:17
cmd
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?

Pozostało 580 znaków

2017-11-10 06:36
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.

Pozostało 580 znaków

2017-11-12 17:20
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.


Linux Mint
Arduino / Python 3.5.2

Pozostało 580 znaków

2017-11-12 20:36
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.
Ahhh... Nie zrozumiałem poprawnie posta przed moim. Spróbuj jeszcze su [hasło] python OdczytDoPlc... czyli najpierw się zalogować, przejść do lokalizacji i dopiero jako super user to odpalić, nie przez sudo (ogólnie jest średnio bezpieczne ;p). A jeśli nie zadziała, to spróbuj biblioteki dla super user'a zainstalować ponownie. (zalogowany jako su) - Guaz 2017-11-12 21:44

Pozostało 580 znaków

2017-11-13 19:11
0

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

Pozostało 580 znaków

2017-11-14 21:11
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?

Pozostało 580 znaków

2017-11-15 02:15
0

N..p.

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

Pozostało 580 znaków

2017-11-15 17:08
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'>
edytowany 2x, ostatnio: bkbw, 2017-11-15 22:16
Zgadłem dobrze, moduł jest zainstalowany tylko dla usera pi. Możesz go odinstalować (pip uninstall pyads) i zainstalować globalnie (sudo pip install pyads). - enedil 2017-11-15 17:33

Pozostało 580 znaków

2017-11-15 22:18
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?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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