• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
a non partire fare riesco da alcuni file etc local rc

[Problema] non riesco a fare partire alcuni file da /etc/rc.local
#11
lanciarli con sudo e lanciarli con l'utente root (loggato) dalla path /root non è la stessa cosa Smile

prova e posta gli output in ogni caso, vediamo



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#12
infatti se dal login (non root) lancio il programma che non parte (perchè è sempre lo stesso) con il prefisso sudo (non l'avevo mai provato) esso non parte e mi da un errore, ho fatto un pò di ricerca in rete e si parla di versioni di python non compatibili con alcune librerie, quindi l'ho lanciato in due modi:

sudo python2 nomeprog.py
e l'errore è:
Traceback (most recent call last):
File "tempint_mqtt.py", line 3, in <module>
import paho.mqtt.client as mqtt
ImportError: No module named paho.mqtt.client

sudo python3 nomeprog.py
e l'errore è:
Traceback (most recent call last):
File "tempint_mqtt.py", line 2, in <module>
import Adafruit_DHT as dht
ImportError: No module named 'Adafruit_DHT'

Quindi deduco che una lib non funziona con la 2.7 e l'altra con la 3.5 che sono i python installati,
quindi ho verificato nelle rispettive repo ed effettivamente nessuna delle due è compatibile con entrambi i python
Adesso installo il python 2.7.9 che dovrebbe essere compatibile con entrambi e riprovo
Pensa che sono due giorni che sto provando a farlo andare, lo stesso script (ovviamente in lua e fatto funzionare su NodeMCU) ci ho impiegato mezza giornata per farlo andare senza nessun problema.
Devo dire che raspberry su queste cose mi sta un pò deludendo ....ti aggiorno
Risposta
#13
con una distro linux e python avresti riscontrato le stesse difficoltà se ti può rincuorare.

è solo questione di sperimentazione&smadonnamenti Big Grin

la prossima volta sarai abilissimo a farlo andare al primo tentativo



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#14
È che le librerie (o moduli) Python, vanno installati sulla versione di Python in uso. Python 3 non vede le librerie che hai aggiunto a Python 2 e viceversa. Installa entrambe le librerie (se esistono e compatibili)nella versione di Python che vuoi usare, e le troverà entrambe
Risposta
#15
(31/01/2018, 15:17)Zzed Ha scritto: È che le librerie (o moduli) Python, vanno installati sulla versione di Python in uso. Python 3 non vede le librerie che hai aggiunto a Python 2 e viceversa. Installa entrambe le librerie (se esistono e compatibili)nella versione di Python che vuoi usare, e le troverà entrambe

Effettivamente sembra funzionare la tua soluzione Big Grin

Adesso però ho un altro problema probabilmente dovuto alle varie prove fatte, ho un altra lib (telepot) che non mi fa partire un altro script, ho provato ad aggiornarla con "pip install telepot" ma il comando mi restituisce questo errore:
ImportError: No module named urllib3

Uffàààààààààààà
Risposta
#16
Urlib3 quindi stai lavorando in python 3?
Allora devi usare pip3!
Prova anche
Codice:
pip install --upgrade telrpot
(o pip3 a seconda dei casi).
Pare che tutti i tuoi problemi derivino dalla confusione tra Python 2.x e 3.x (che non sono semplicemente 2 versioni diverse dello stesso software, sono 2 software diversi, e così li devi intendere).
Un consiglio : scegli che tipo di Python usare, e usa solo quello, nei limiti del possibile.
Risposta
#17
Ho capito la differenza tra i 2 python

Allora, con pip install --upgrade telepot mi restituisce sempre errore Urllib3
se invece scrivo pip3 lo ha aggiornato e lo script sembra andare però ho un problema,
io non volevo farlo andare col python3 ma con il python2, come faccio a tornare indietro con la lib telepot ?
Devo disinstallarla ? Come si fa ? Grazie mille
Risposta
#18
Pip installa su Python 2
Pip3 installa su Python 3
Risposta
#19
Sono tornato al punto di partenza, lo script se lo lancio manualmente con
python script.py ........ funziona
se simulo la partenza da /etc/rc.local con
sudo python script.py ........ non funziona restituendo l'errore "no module named ...etc"

Mi sono letto un pò di cose ed ho capito che il modulo incriminato dovrebbe stare in una delle cartelle del PYTHONPATH,
ma dunque è solo questo il problema ? E come faccio ad installare nel path giusto ?

Però a questo punto non ho capito perchè la trova in un caso e nell'altro no, ho confusione in testa ed ho bisogno di un chiarimento "chiaro"  Big Grin

Grazie in anticipo
Risposta
#20
Ho risolto, il problema sta nel path che viene "richiamato" da python lanciato con "sudo" (quindi al boot) e cioè
si aspetta queste lib nel path /usr/lib/python2.7/dist-packages mentre al momento dell'installazione essa è stata installata nel path /home/pi/.local/lib/python2.7/site-packages.
Basta quindi andare nella cartella di destinazione e creare il link alla lib mancante in questo modo:
>cd /usr/lib/python2.7/dist-packages
>sudo ln -s /home/pi/.local/lib/python2.7/site-packages/paho

A questo punto al reboot lo script parte regolarmente, questo problema viene sicuramente fuori anche con altre librerie,
basta applicare lo stesso metodo.
Risposta
  


Vai al forum:


Navigazione: 4 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect